Synchronize on the 'out' PrintStream instead of 'this' to avoid mixing
up log statements from different threads. Example from actual log file:

DEBUG	DEBUG	2014-06-02 08:48:46	IlluminaBasecallsConverter	Reading data
from tile 11206 ...
2014-06-02 08:48:46	IlluminaDataProviderFactory	The following parsers
will be used by IlluminaDataProvider:
When querying for a contig which doesn't exist in SAMFileReader, return an empty iterator. This matches the behavior in BAMFileReader
Use a StringBuffer instead of synchronization when generating log
messages. The only exception is if the stacktrace of a Throwable also
needs to be written. Then we have to ensure that our message goes with
the stacktrace so we need synchronization there. But this should not be
a drawback since the Throwable.printStackTrace() itself synchronizes on
the PrintStream.
Merge pull request #30 from nnordborg/synchronize-log

The logging implementation is not thread-safe
Release 1.115
adding travis-ci
Merge pull request #45 from samtools/nh_travis_ci

adding travis-ci
adding build status in the README
Merge pull request #47 from samtools/nh_readme_with_build_status

adding build status in the README
Checks if ReferenceFile is indexed, and if so, uses it

added tests.
Merge pull request #48 from samtools/yf_allow_referenceFileWalker_RAM_on_indexed_BAMs

Checks if ReferenceFile is indexed,
Fix unit test URL for google redirect.
Merge pull request #49 from samtools/jc_fix_google_url

Fix unit test URL for google redirect.
Release 1.116
Update TabixReader.java
GitHub-51 Fix NPE if idxFn TabixReader ctor arg is non-null.
Merge pull request #53 from samtools/aw_NPE_in_TabixReader_51

GitHub-51 Fix NPE if idxFn TabixReader ctor arg is non-null.
removing unnecessary libraries
Merge pull request #57 from samtools/nh_remove_unnecessary_libs

removing unnecessary libraries
Explicitly implementing Closeable on classes and interfaces with a void close() definition