Encode genotypes automatically in VariantBuilder instead of requiring the client to call Genotype::encode_genotype()

-VariantBuilder genotype setters now call appropriate Genotype::encode_genotype() function for you.

-Updated tests/documentation accordingly.

-Added some additional move semantics to per-sample genotype setters to allow clients to avoid extra copies
 when they don't need to re-use their genotype data.

-Added disclaimers to Genotype::encode_genotype() functions that they should only be called directly
 if you are working with low-level BCF data, and not when using VariantBuilder.

-Specifying phasing is still an issue, but will be addressed separately in #373

Resolves #371