Move the field_type checks to VariantHeader
- necessary when merging variants: not all variants will have all fields,
  but the merged header will
Merge pull request #288 from broadinstitute/jt_move_field_type

Move the field_type checks to VariantHeader
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