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?
To get rid of bcf_hdr_t's would require changes to MultipleVariantReader, MultipleVariantIterator, ReferenceBLockSplittingIterator as they all use bcf_hdr_t now.
Adding a function with VariantHeader as argument for the LUT is possible - it would require duplicating the functionality of the current add_header function, but with VariantHeader member functions instead of bcf_* functions. That's ok with me, just want to check whether there is a better way (since VariantHeader does not seem to have a get_shared_hdr_ptr() function).