updating hom_ref and hom_var to work with alternate ploidies

fixes #228 

That's cool, much cleaner.  It doesn't seem to work with vector<dynamic_bitset<>> though.  What is the empty type parameter in the dynamic_bitset<> for?