Inferring heterogeneous evolutionary processes through time: from sequence substitution to phylogeography.