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?
Can't you just make your class a friend of VariantHeader? That way you can reach in and grab the bcf_hdr_t's from the VariantHeaders, and just pass them in to the existing add_header() function -- no duplication of functionality required. Alternatively, I would support adding a public get_raw_header_ptr() function to VariantHeader if using friend is problematic here due to your use of templates.

Of course this solution won't allow you to leverage the VariantHeader functions internally throughout your code, but at least you will be able to accept VariantHeaders in your header merger, which is important for gamgee integration. Changing the header merger (and readers/iterators) to use VariantHeader internally can become another ticket, since it would involve a non-trivial amount of work.