#306 Addresses issues with the AsyncAppender by re-implementing the underlying components.

We now queue events using an internal ArrayBlockingQueue and inform subclasses of the AbstractSingleWriterAppender when that happens. The default implementation AsyncAppender now uses the single thread of the superclass to do the appending.

Added an additional implementation called DurableAsyncAppender based on the Java Chronicle. Before queueing an event internally, it logs that event to a Chronicle that will persist if the logging system isn't cleanly shut down. When the appender is restarted, it will iterate through any records in that Chronicle and re-process them through its delegate appenders. This might lead to duplicate log entries but the important thing is that no log events will be lost since everything gets persisted to the Chronicle before being queued to be written to a file, inserted into a database, or what have you.
#306 Added log file deletion to beginning of test.
Use Processor as async single-writer.
Add a little javadoc.
Merge pull request #316 from reactor/fix-306-processor-as-async

Fixes #306 by providing a rewritten AsyncAppender and additional Java Chronicle-based DurableAsyncAppender