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
Merge pull request #384 from broadinstitute/jt_file_index

MVI and RBSVI now output pairs with file indices
Fix some erroneous includes in merged_vcf_lut.h
Merge pull request #389 from broadinstitute/dr_fix_includes_in_merged_lut

Fix some erroneous includes in merged_vcf_lut.h
Fixed some whitespace problems
Merge pull request #391 from broadinstitute/intel_whitespace_fix

Fixed some whitespace problems
Check for missing variant in MultipleVariantIterator - important if one
of the inputs is a blank VCF
Added a simple test case for empty VCF traversal using MultipleVariantIterator