LOGBACK-942 Update SocketAppender to block for a configurable time until dropping events

[LOGBACK-942](http://jira.qos.ch/browse/LOGBACK-942)

Currently the SocketAppender will drop events if it's underlying BlockingQueue is full. The default SocketAppender uses a SynchronizedQueue, meaning that it only has room for one item exacerbating the problem. 

This pull request updates the SocketAppender to utilize ```BlockingQueue#offer(E e, long timeout, TimeUnit unit)``` to allow for the appender to block for a specified amount of time, rather than just dropping the message if busy.

**This pull request isn't necessarily ready for merging in its current state. I am interested in feedback and if the default value is ok. The documentation also hasn't been updated**