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?
Agree -- I think we should have both add_headers(multiple_headers_at_once) and add_header(single_header), with the merged result being encapsulated in a member variable that you can access by const reference via a getter.

As for constructors, I would vote to delete this confusing constructor that takes an already-merged header + individual headers, and replace it with VariantHeaderMerger(starting_header) and VariantHeaderMerger(multiple_starting_headers). These should store the merged result in a member variable, and work seamlessly with subsequent add_header(s) calls.