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.
Move constructor/assignment operator and destructor can be defined as defaults in the header:

Genotype(Genotype&& other) = default;
Genotype& operator=(Genotype&& other) = default;
~Genotype() = default;