Runtime Shutdown Hook for AsyncAppenderBase

Added a Runtime Shutdown Hook thread to the AsyncAppenderBase implementation that prevents the AsyncAppender from dropping events under certain conditions
(http://mailman.qos.ch/pipermail/logback-user/2014-March/004314.html)

Unit tests for the functionality of the Hook thread. No way to unit test the shutdown hook itself, but the run() method of the hook thread functions as expected when shutdown conditions are simulated (the worker thread is suspended and elements are pending in the queue).