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.
are we worried about haploid support? how does allele_key() behave if given an out-of-bounds index?