Fix case sensitivity issue in VariantHeaderBuilder that was preventing shared/individual field types from getting set

Quick fix needed by Joel
Merge pull request #298 from broadinstitute/dr_variant_header_builder_case_sensitivity_bug

Fix case sensitivity issue in VariantHeaderBuilder that was preventing shared/individual field types from getting set
Merge variant headers
- Merge bcf_hdr_t with merge_variant_headers()
- Merge VariantHeader with VariantHeaderBuilder::merge()

Add VariantHeader equality operators
Merge pull request #293 from broadinstitute/jt_variant_header_merge

Merge Variant Headers
Travis: run tests in release mode in master only

create a new *production* mode to eliminate the -finline-functions that
is no longer supported by clang 3.5

also create a global fixture for initialization of global variables in
the variant reader test.

closes #290
Merge pull request #291 from broadinstitute/mc_relase_mode_testing

Travis: run tests in release mode in master only
Fix handling of vector end values by Genotype::operator[]

Vector end values were not passing through to the caller
when accessing alleles via operator[] in the Genotype class.
Merge pull request #302 from broadinstitute/dr_fix_genotype_handling_of_vector_end

Fix handling of vector end values by Genotype::operator[]
Add sample_index to VariantHeader (analogous to field_index)
Merge pull request #304 from broadinstitute/jt_vh_sample_index

Add sample_index to VariantHeader (analogous to field_index)
1. Modified SharedFieldIterator and IndividualFieldValueIterator to
handle bcf_*_vector_end values. This is done by passing the end value of
the pointer in the constructor and modifying the "==" operator of the
iterator. The idea is that 2 iterators x,y are equal iff
 (a) x and y are identical  OR
 (b) (x == end && *y == bcf_*_vector_end) || (y == end && *x == bcf_*_vector_end)
2. Inserted test case fields for variable length vectors
Modified behavior of SharedFieldIterator and
IndividualFieldValueIterator so that:
(a) Operators ++ and += advance to the end of the vector if the value at
the new iterator location is equal to bcf_*_vector_end.
(b) Operator == is same as the original
(c) Operators -- and -= unchanged
After rebase against master
(a) Cache current pointee value in SharedIterator and
IndividualFieldValueIterator to reduce overhead
(b) Moved common code to utils
Incorporated David's suggestions:
a. Use constructor with full parameter list in iterators
b. Modified operator[]
c. Moved variable length field tests to different function
Changes after rebase