Eliminate duplication of VariantHeader functionality in Variant class

Make Variant's m_header member a full VariantHeader instead of a raw htslib
pointer so that Variant can take advantage of the existing VariantHeader
API functions instead of duplicating them. Remove duplicated VariantHeader
functionality from Variant.

Also made some formerly private VariantHeader functions public in order
to allow you to query field existence / type and pass the field category
(info, format, or filter) as a parameter.

Also improved test coverage for the VariantHeader API

Resolves #286