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?
Since this is a vector of raw bcf_hdr_t pointers (instead of shared_ptrs) how do you ensure that the headers being pointed to don't go out of scope somewhere else and get destroyed? Shouldn't you be sharing ownership of the headers?