VariantBuilder: high-performance creation of Variant records

-Supports setting and removal of all fields in Variant
 records using a variety of inputs and calling strategies.

-Queues up tranformations to the record and applies them
 at build time so that the final data is encoded only once.

-Flexible API allows the user to choose their desired
 level of performance depending on how they are willing
 to prepare their data (eg., setting by pre-flattened
 vs. multi-dimensional vector, setting by move vs. copy,
 setting by indices instead of names, etc.)

-Storage layer designed to store many small values as
 contiguously as possible and with a minimum of new
 allocations/deallocations.

-Builder objects designed for re-use across records to
 avoid expensive re-creation of internal data structures.

-All validation can be disabled for a performance boost
 once confidence is gained in a program.

-Requires upfront a VariantHeader with all fields, contigs,
 and samples pre-declared.

Remaining TODOS (these will become tickets):

-Currently supports building Variants from scratch only;
 building from an existing Variant is needed to optimize
 for the case where only a few changes to a record are
 going to be made.

-Integration with existing Individual/Shared Field/FieldValue
 and Genotype classes.

-Fuller doxygen docs for the public API functions
Merge pull request #319 from broadinstitute/dr_variant_builder

VariantBuilder (for final review and merge)
ReferenceBlockSplittingVariantIterator
- uses htslib hack to modify Variant (TODO: use VariantBuilder)
- TODO: test ref bases
MultipleVariantReader changes causes the test case for Issue #209 to pass
- but the issue still exists, so add a new test case
1. Modified ReferenceBlockSplittingVariantIterator to insert 'N' as the
reference allele for a split <NON_REF> GVCF interval. This is done by
introducing a function set_reference_allele() in Variant.
2. Uncommented the test cases for
ReferenceBlockSplittingVariantIteratorr reference allele
3. The problem*.vcf files failed because their headers did not declare
an END field. htslib assumes that fields which are not declared are of
type String. Declaring END as an integer field in these files solves the
problem.