made empiricalfreqs its own class because it has entirely unique behavior
expanded Model() class to account for rate heterogeneity in nuc, amino models