Developing and Applying Heterogeneous Phylogenetic Models with XRate