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?
It's necessary to test this on multiple Variant vectors from this reader, because we can't rely on the ordering or presence of the Variants (and hence their mappings to the headers)

For example, if your inputs are File1, File2, the Variant vectors can be any of [F1, F2], [F2, F1], [F1], or [F2]