Make IGVSeekableBufferedStream more efficient by using overlap in buffer.

Only use it in the (most often used) case of needing to read past end of buffer

Much refactoring of unit tests

IGV-2032
Make IGVSeekableBufferedStream more efficient by using overlap in buffer.

Add the case of seeking backwards

IGV-2032
Fix TestUtils.clearOutputDir() so it deletes both files and directories
Use absolute path to specify database directory when launching mongod for tests

IGV-2020