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 agree that this class should hold the merged header while it is in the process of being merged.  Also, the current practice of (pseudocode) `merge(merged_header_accumulator, single_input_header)` is an artifact of what htslib provides in bcf_hdr_combine().  Since we now have the option to wrap it in something nicer, `merge(all_headers_at_once)` is more natural to my access pattern.