Add `SamReaderFactory` as a new facility for reading from SAM files.
- Produces `SamReader` objects, which are similar to `SAMFileReader`.
- Deprecate `SAMFileReader`, as `SamReaderFactory` is the preferred approach to creating things that read SAMs.  `SAMFileReader` still functions as normal.
- See `SamReaderFactory`'s javadoc for examples of how to use it.
Merge pull request #1 from samtools/mm_sam_reader_factory_and_friends_and_their_cousins

Add `SamReaderFactory` as a new facility for reading from SAM files.
Make sure BAM index file is newer than BAM file
Merge pull request #7 from samtools/jg_pfb409

Make sure BAM index file is newer than BAM file
Add more backwards compatability for loading metrics in "legacy" packages.
Merge pull request #8 from samtools/mm_bugfix_legacy_metrics

Add more backwards compatability for loading metrics in "legacy" packages.
Additions to `IntervalList`.
- `#fromFiles()` generator.
- `#equals()` and `#hashCode()` implementations.
Merge pull request #10 from samtools/mm_interval_list_util

Additions to `IntervalList`.
Release 1.114
remove unnecessary JAVA6_HOME property
Eliminate remaining vestiges of java6_home.
Merge pull request #12 from samtools/mh_remove-java6-home

Mh remove java6 home
factory bam writer
fixed format, added a test in SAMFileWriterFactoryTest
Slight refactor.
Merge pull request #13 from samtools/pl_sam_writer_factory_stream

Pl sam writer factory stream
40% speed improvement for query under certain workloads
Merge pull request #14 from samtools/bw_queryArrayListOptimization

40% speed improvement for query under certain workloads