CompositeByteBuf.isDirect() should return true if its only backed by direct buffers
Cache underlying ByteBuffers and count in ChannelOutboundBuffer.Entry to reduce object creation and so GC pressure

Beside this it also helps to reduce CPU usage as nioBufferCount() is quite expensive when used on CompositeByteBuf which are
nested and contains a lot of components
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