use default hmm init/emit/step etc functions to reduce code duplication

 - a lot of the cross types with two genotypes (riself, dh, haploid,
   etc.)  have very similar basic HMM functions. If I make those the
   defaults, there's a great reduction in code. (e.g., dh and haploid
   don't need .cpp files anymore.)