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
Merge pull request #383 from broadinstitute/dr_vb_auto_encode_genotypes

Encode genotypes automatically in VariantBuilder instead of requiring the client to call Genotype::encode_genotype()
1. Added VariantHeaderMerger and MergedVCFLUT for fast field look up
between input VCFs and merged VCF.
2. VariantHeaderMerger accepts both shared_ptr<bcf_hdr_t> and
VariantHeader& as inputs. To do this, VariantHeaderMerger
is now a friend of VariantHeader so that m_header can be directly
accessed.
3. Created two VariantHeaderMerger variants optimized for two different
purposes
  a. InputOrderedVariantHeaderMerger - fast traversal of all fields for
a single input VCF
  a. FieldOrderedVariantHeaderMerger - fast traversal of all input VCFs
for a single field
4. Created more rigorous tests for LUT.

5. Store shared_ptr<bcf_hdr_t> within VariantHeaderMerger. Use raw
pointers only when needed
6. Added a get_input_vcf_headers() function for MultipleVariantReader
7. Missing values in VariantHeaderMerger are represented by
bcf_int32_missing

8. Added get_field_name(), get_sample_name() in VariantHeader

9. VariantHeaderMerger can store merged field idx for a user defined
enum. Updated comments with information about how to use this feature

10. Move constructor, = for VariantHeaderMerger - disable deep copy
constructor, =
Merge pull request #376 from broadinstitute/intel_var_header_merger

Added VariantHeaderMerger class to gamgee for merging VCF headers and creating lookup tables for header field idxs
MVI and RBSVI now output pairs with indices
- Made MVI() explicitly default
- added some consts and refs to tests
uint32_t
File index testing