[#1800] [#1802] Correctly expand capacity of ByteBuf while preserve content
Add AUTO_CLOSE option

- Fixes #1952
- If AUTO_CLOSE is turned on, Netty will close the channel immediately and automatically on write failure.  The default is false.
Remove AUTO_CLOSE option

- Related #1952
- Since 5.0, we ask users decide to close the channel on write failure.
add docs and testing for the LoggingHandler.
Fix regression which lead to leak buffers when nothing could be read from the Channel.

This was introduced as part of #1812, but fortunatualy was not part of any release.
Optimize SslHandler

- Fixes #1905
- Call ctx.flush() only when necessary
- Improve the estimation of application and packet buffer sizes
- decode() method now tries to call unwrap() with as many SSL records as
  possible to reduce the number of events triggered
Simpler toString() for ByteBufAllocators
Don't create an EmbeddedSocketAddress every time
Improve docstrings for and of
[#1976] Fix IndexOutOfBoundsException when calling CompositeByteBuf.discardReadComponents()
Allow to override how wrapped direct ByteBuffer are allocated to make it easier to extend
Also allow to override how direct ByteBuffers are freed
Adding check for zero readable bytes in WebSocket08FrameDecoder decode.
Fix regression introduced by 4c7fa950cc4f4c52eeaae5887335b1f3047592f8

- Some promises were not fulfilled when SSLEngine produces 0 bytes.
Also allow to disable header validation via HttpServerCodec and HttpClientCodec. Related to [#1981]
[#1982] Limit the usage of ThreadLocal.get() for performance reasons
Remove unnecessary parenthesis
Support for empty HTTP request header values.
Resurrect Channel.id() with global uniqueness

- Fixes #1810
- Add a new interface ChannelId and its default implementation which generates globally unique channel ID.
- Replace AbstractChannel.hashCode with ChannelId.hashCode() and ChannelId.shortValue()
- Add variants of ByteBuf.hexDump() which accept byte[] instead of ByteBuf.
Bring back ChannelGroup.find(id)