Merge pull request #26 from soundrop/master

Enable WebSocket client->server masking
served from header support
110
remove comment
fix responses served entirely from cache
Fix cached responses coming in with the incorrect encodings and content length.
on a bad gzip stream, eat any extra data that may come in
cleanup nested class
move wakeup onto executor service to keep strict mode happy
prevent unnecessary allocs in byte buffer list
remove debug
Use ByteBufferList.obtain where applicable in SSL socket. Use static final Empty ByteBuffer for engine requested wraps and unwraps.
SSL Socket: be smarter about allocations to prevent gc thrashing.
ByteBufferList: read(length) now tries to reuse an existing buffer to fit the entire resize. This prevents gc thrashing.
ByteBufferList: add now reclaims 0 length ByteBuffers.
ByteBufferList: reclaim now limits the size to the requested length automatically.
ByteBufferList: obtain/reclaim keep track of the largest item in the ByteBufferList to know if the alloc can be
served.
Various sinks and filters: reclaim ByteBuffers.
When reading from a cached response, read the entire thing vs in chunks.
Call closedCallback in disconnect()
Fix up reclaimer to actually use a PrioityQueue with a Comparable.
Fix regression where ByteBuffers were being limited to the request
size vs their capacity.
Implement ScatteringByteChannel for prototyping. Seems to thrash the GC.
Switch to ArrayDeque instead of LinkedList for ByteBufferList.
ContentLengthFilter will now report an exception on unexpected socket close.
Merge pull request #27 from IkhlasStudio/patch-SocketIO

Call closedCallback in disconnect()
ByteBufferList: rename clear to recycle, and reclaim all the byte buffers.
version 111
Corrected Sec-WebSocket-Key to use base64 encoded UUID instead of plain string UUID