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.