Fix potential reentrance issue in ChannelOutboundBuffer
[#1644] Fixed IndexOutOfBoundException when calling copy() on a empty CompositeByteBuf
SPDY: fix NullPointerException in SpdyFrameDecoder
[#1648] Make sure trailing headers are not dropped during content encoding/decoding
Small optimitation to limit volatile reads
Factor out the PendingWrite class and put it in internal package. Make use of it in SslHandler and ChunkedWriteHandler to reduce GC-pressure
[#1650] Make it possible to override isSharable() to simplify things for clojure users
remove AbstractChannel#doPreClose
Revert "remove AbstractChannel#doPreClose"

This reverts commit 241f856cc721dbf786321a94c987c5026eea5412.
[#1656] Fix IndexOutOfBoundsException in MessageToMessageException
[#1654] Remove AbstractChannel.doPreClose() and notify close future on register failure. Based on patch of @jpinner
[#1654] Notify close future after the close was complete
Fix for first issue from #1652 on computation of time to wait in AbstractTrafficShapingHandler for Netty 4

Fix for first issue from #1652 on computation of time to wait in AbstractTrafficShapingHandler for Netty 4, using the same formula than in Netty 3 (wrong place for parenthese).
Was:

    (bytes * 1000 / limit - interval / 10) * 10;

Becomes:

    (bytes * 1000 / limit - interval) / 10 * 10;
Change AbstractChannel#doDeregister return type from Runnable to void.
Change AbstractChannel#doRegister return type from Runnable to void.
Clean up AbstractUnsafe#bind and AbstractUnsafe#disconnect.
[#1668] Remove synchronized usage in JZlibEncoder and JdkZlibEncoder
[#1658] Let trafficshaping work with ByteBuf and ByteBufHolder out of the box
[#1669] Correctly notify the ChannelPromise of delayed writes
[#1671] Fix bug in ChunkedWriteHandler which produce a NPE on empty chunks