SPDY: add SPDY/3.1 support

- with Michael Schore <mschore@twitter.com>
[#1875] Correctly check the readerIndex when try to read a byte from AbstractByteBuf
[#1832] - Channel writability change notifications sometimes fail to fire
[#1874] WebSocket08FrameDecoder may leak memory if channel is closed before the full frame was received
[#1878] Fix leak of ByteBuf when masked payload is used
[#1879] Correctly validate close frame
[#1880] Use ByteBufAllocator when read bytes into new chunks
[#1876] Make use of proper state machine in WebSocket08FrameDecoder for performance reasons
use enum for state in EmbeddedChannel
use enum for state in LocalChannel
Fix checkstyle
[#1885] Correctly close leak detected also on non started HashedWheelTimer
disable debugging output during test
[#1881] Use correct field name in NullPointerException
[#1890] Correctly expand ByteBuffer array in all cases

The problem was that we did not handle the case correctly when doubling the array was not enough. We need to keep doubling until everything fits in.
Use direct ByteBuf for the test to make sure it is not copied
[#1893] Fix bug in JdkZlibDecoder which did not let it handle large data
Fix the problem where HashedWheelTimer puts a timeout into an incorrect place

- the stopIndex of a timeout is calculated based on the start time of the worker thread and the current tick count for greater accuracy
Fixes the problem where the promise of the outbound operation that causes a channel closure is notified after channelInactive()

- Fixes #1897
[#1895] Fix IllegalStateException which was produced during failing ChunkedWrite after the channel was closed