Store all variant headers and also combine them for an overall header
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
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.
Add sample_index to VariantHeader (analogous to field_index)
Remove ycm extra configuration files
forgotten case
Read group class

Read group class

Minor changes base don code review

Minor improvements in code readabiity
ignore emacs temporary files
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
Modified operator == in IndividualFieldValue to use iterators which
take care of bcf_*_vector_end values implicitly
A more serious bug in the previous implementation of the == operator was
in the way string fields were handled. Points to remember for string
fields:
1. The size() function returns the number of characters allocated for the string.
2. The variable m_num_bytes also stores the number of characters
allocated for the string (same as size())
3. When operator[i] is called for string fields, the address that is
accessed is m_format_ptr->p + i*m_num_bytes (not m_format_ptr->p + i).
The address accessed is outside the original allocated memory.

Moral of the story: use iterators always, or remember the intricacies of
string v/s other types of fields.