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 believe that bcf_hdr_int2id() will return a null pointer if there's no field at that index (could happen if field indices are manually specified in the header using IDX= and there are gaps in the indexing scheme). Should return "" if bcf_hdr_int2id() returns null