Based a Genotype class on VariantFieldValue

With a couple GT specific operators, including separating out the alleles.

Heavily based off htslib and comment stream in #77.
please add documentation for the template parameter `MISSING_TYPE`. Soon C++ will have concepts and we won't need to rely on documentation for this, but for now we need to be explicit what the requirements are to use this template. 

`@tparam MISSING_TYPE any class that implements the is_missing() member function.`