Introduce AsyncAppender for logback-access

Proposed fix for http://jira.qos.ch/browse/LOGBACK-827

Async appender is intended to fix issues like that:
<pre>
18:31:29,255 |-ERROR in ch.qos.logback.classic.AsyncAppender[access.file.async] - Appender [access.file.async] failed to append. java.lang.ClassCastException: ch.qos.logback.access.spi.AccessEvent cannot be cast to ch.qos.logback.classic.spi.ILoggingEvent
	at java.lang.ClassCastException: ch.qos.logback.access.spi.AccessEvent cannot be cast to ch.qos.logback.classic.spi.ILoggingEvent
	at 	at ch.qos.logback.classic.AsyncAppender.preprocess(AsyncAppender.java:28)
	at 	at ch.qos.logback.core.AsyncAppenderBase.append(AsyncAppenderBase.java:129)
	at 	at ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:88)
	at 	at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:48)
	at 	at ch.qos.logback.access.tomcat.LogbackValve.invoke(LogbackValve.java:199)
	at 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
	at 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
	at 	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
	at 	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
	at 	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
	at 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at 	at java.lang.Thread.run(Thread.java:744)
</pre>

Example `logback-access.xml`:
~~~~~~~xml
<?xml version='1.0' encoding='utf-8'?>
<configuration>

    <!-- always a good activate OnConsoleStatusListener -->
    <statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener"/>

    <!-- See for reference: http://logback.qos.ch/access.html#configuration -->
    <appender name="access.file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${catalina.base}/logs/access.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover daily -->
            <fileNamePattern>${catalina.base}/logs/access.%d{yyyy-MM-dd}.%i.log.tar.gz</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- or whenever the file size reaches 100MB -->
                <maxFileSize>100KB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <pattern>combined</pattern>
        </encoder>
    </appender>

    <appender name="access.file.async" class="ch.qos.logback.access.AsyncAppender">
        <appender-ref ref="access.file"/>
    </appender>

    <appender-ref ref="access.file.async"/>
</configuration>
~~~~~~~~