Add a Lock to BasicOpsLogger
Fix error in javadoc

IOException can be thrown now: this happens when there is a
problem creating a file or parent directory used for logging.
Improve javadoc
BasicOpsLogger uses AsyncPathDestination

Manages a batch that always contains a single record
Remove BasicPathDestination

AsyncPathDestination is used everywhere instead.
Remove BasicOpsLogger.Destination
Make AsyncOpsLogger.Destination a top level interface
Rename AsyncPathDestination to PathDestination

This class now handles logging to a path for synchronous and
asynchronous logging alike.
Improve javadoc
Code cleanup - fix method name