Added LUT for merged header in MultipleVariantReader

1. Added MergedVCFLUT capability in utils/merged_vcf_utils.*. This class is now used within MultipleVariantReader.
2. Added test case for LUT.
3. Fixed signed-unsigned comparisons
4. Added some useful functions in VariantHeader

TODO:
1. What should be done when sample names are duplicated?
I'm not sure this constructor should exist -- it makes little sense to construct a VariantHeaderMerger if all of the work of merging is already done. I think what we want instead is a constructor that takes a header as a starting point, deep-copies it, and stores it in m_merged_vcf_header_ptr -- then you can repeatedly add_header(additional_header) to merge additional headers into it. Alternatively, you can use default construction with no starting header, in which case the first header you add gets deep-copied to become m_merged_vcf_header_ptr.

Thoughts?