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 increment operators.

(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

2. Inserted test cases for variable length vectors

3. Cache current pointee value in SharedIterator and
IndividualFieldValueIterator to reduce overhead

4. Use constructor with full parameter list in iterators

5. Operator[] in SharedFieldIterator, IndividualFieldIterator and IndividualFieldValueIterator works relative to m_current_data_ptr now

6. Added tests for operator[] for SharedFieldIterator, IndividualFieldIterator and IndividualFieldValueIterator
Merge pull request #287 from broadinstitute/intel_vector_end

Handle bcf_*_vector_end in iterators SharedFieldIterator and IndividualFieldValueIterator