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 would also be good to have a constructor that takes just a vector of headers, merges them, and stores the result in m_merged_vcf_header_ptr. 

In general, I think the merged header should be managed internally by the header merger rather than passed in by the client to every add_header() call, and you should provide a getter function to get the merged header when you're done adding headers.