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)
Remove ycm extra configuration files
forgotten case
Merge pull request #312 from broadinstitute/ak_fix_samples_to_include_in_variant_reader

fix for forgotten list of samples to include
Merge pull request #309 from broadinstitute/mc_remove_ycm_files

Remove ycm extra configuration files
Read group class

Read group class

Minor changes base don code review

Minor improvements in code readabiity
Merge pull request #294 from broadinstitute/db_read_groups

ReadGroup class along with some support in SamHeader.
ignore emacs temporary files
Merge pull request #313 from broadinstitute/ak_ignore_emacs_temporaries

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
Merge pull request #287 from broadinstitute/intel_vector_end

Handle bcf_*_vector_end in iterators SharedFieldIterator and IndividualFieldValueIterator
VariantBuilder

VariantBuilder code review round 2 update

-Addressed round 1 code review comments

-Enable move semantics when setting individual fields
 (allows for zero-copy bulk setting of a field for
 all samples at once)

-As a side effect of the above, setting individual fields
 by sample instead of in bulk is now supported. Uses
 short-value optimization to keep the per-sample values
 as contiguous as possible, but this option is still less
 efficient than setting in bulk.

-Significant refactoring to support the new move semantics
 and per-sample field setting:

    -split VariantBuilderDataField into VariantBuilderSharedField
     and VariantBuilderIndividualField

    -individual fields are now encoded at build time instead of
     at field set time; shared fields are still encoded upfront

    -to allow setting individual fields by nested vectors and
     by sample to compete with setting it by flattened vector,
     had to write a lot of low-level encoding routines to replace
     the former strategy of converting to flattened vector then
     handing off to htslib

Remaining TODOs:

-Fix issues with float missing/end of vector values (these are
 proving very problematic)

-Build-by-merge support (Joel indicated that this would be helpful
 for his use case, after all)

-More tests (now that Coveralls is working again, I can see the
 coverage gaps clearly)

-Doxygen comments / documentation

Fix bug with float missing / end of vector values

Apparently we can't use the htslib bcf_float_missing and bcf_float_vector_end
values directly -- need to copy them into local variables before use.

Fix bug in validation of vector lengths when setting individual fields

Previous validation routine would incorrectly allow nested vectors
whose first dimension was greater than but divisible by the number of
samples. Now validation of vector<vector> is separated from validation
of flattened vectors.

Improve test coverage, and fix issues found by new tests

refactoring for readability and safety