Adds a BreakableFileSystemAbstraction and uses it for TestDirectMappedLogBuffer.

Adds BreakableFileSystemAbstraction which is a FileSystemAbstraction that can
 break in highly customized and interesting ways.
Adds a test in TestDirectMappedLogBuffer which shows how things can break
 when DMLB is reused after an exception in writeOut(). This test rightfully
 breaks and is Ignored.