Bug fix: `IndexStreamBuffer` prematurely throws data-exhaustion error.
- When fewer than the requested number of bytes are read from a stream, keep reading until the stream is actually exhausted.
Merge pull request #75 from samtools/mm_bugfix_bam_index_input_stream_api_compliance

Bug fix: `IndexStreamBuffer` prematurely throws data-exhaustion error.
Bug fix: if `this` has a field with value `null`, `equals()` throws a `NullPointerException` despite that being a valid state.
Merge pull request #77 from samtools/mm_bugfix_metrics_equals

MetricBase NPE fix
Release 1.119
Removed closing of internal output stream directly in the BCF2Writer.

BCF2Writer.close() was calling outputStream.close() and then super.close();
but in IndexingVariantContextWriter's (the super class of BCF2Writer) close() method
it also calls outputStream.close().  So we were double-closing the output stream.

This manifests itself as a problem when we try to write e.g. a compressed bcf file
because the close method tries to do a final write (which fails on the 2nd close).
Ignore symbolic alleles when running strict validation for a VCF.

We often expect symbolic alleles not to show up in the genotypes (e.g. with NON_REF alleles).
Merge pull request #80 from eitanbanks/eb_fix_gvcf_validation

Ignore symbolic alleles when running strict validation for a VCF.
Merge pull request #79 from eitanbanks/master

Removed closing of internal output stream directly in the BCF2Writer.
Refactored out SAMFileReader for SamReader in certain classes