[#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
Remove synchronized in SPDY code
[#1657] Log content of ByteBufHolder
Formatting
Added http status codes from RFC 6585
Rename methods of EmbeddedChannel and mark old ones as @deprecated
Multiple optimizations in the HttpObjectDecoder

* Minimize allocation of StringBuilder and also minimize char array copy
* Try to detect HttpVersion without calling toUpperCase() for performance reasons