Fix checkstyle
Make sure ChannelHandler.handlerRemoved() is invoked while handler methods are not running

- Fixes #1664
Remove unnecessary traversal of pipeline which occurs when a Channel is closed

- Remove unnecessary ascending traversal of pipeline in DefaultChannelHandlerContext.freeInbound()
- Move DefaultChannelHandlerContext.teardownAll() to DefaultChannelPipeline
[maven-release-plugin] prepare release netty-4.0.5.Final
[maven-release-plugin] prepare for next development iteration
Correctly fix problem in ByteToMessageDecoder and ReplayingDecoder which could let to have a released buffer passed to the decode methods.

This fixes #1664 and revert also the original commit which was meant to fix it 3b1881b523e61496d9bc50e44927f7b58fa449e6 . The problem with the original commit was that it could delay handlerRemove(..) calls and so mess up the order or forward bytes to late.
[maven-release-plugin] prepare release netty-4.0.6.Final
[maven-release-plugin] prepare for next development iteration
Add testcases to prove that remove ReplayingDecoder/ByteToMessageDecoder from within the decode(...) method works
More tests related to self removal from pipeline in ByteToMessageDecoder and ReplayingDecoder
Rename class
Remove an irrelevant comment

.. because firedChannelActive is gone long ago
Remove all/target/src and all/target/classes after building the all-in-one JAR and Xref

.. so that IDEA does not add all/target/src  and all/target/classes to the source and class path.
Grammar
Use recyclable write task to reduce GC pressure
Small optimization in DefaultHttpHeaders.clear()
[#1690] Correctly return first header value on DefaultHttpHeaders.get(..)
[#1704] Make sure SwappedByteBuf.readSlice(..) returns ByteBuf with correct ByteOrder
Allow to also write FileRegion and ChunkInput when using HTTP chunked. Fixes [#1693]
Correctly update Channel.isWritable() when the write happens from outside the EventLoop in a fast fashion. Fixes [#1697]

Introduce a new interface called MessageSizeEstimator. This can be specific per Channel (via ChannelConfig). The MessageSizeEstimator will be used to estimate for a message that should be written. The default implementation handles ByteBuf, ByteBufHolder and FileRegion. A user is free to plug-in his/her own implementation for different behaviour.