[#1532] Remove @deprecated ByteBufIndexFinder and all methods that take it as argument
[#1533] Introduce ByteBufHolder.duplicate() and make use of it in DefaultChannelGroup.write(...)
Fix a bug in SslHandler where a truncated packet isn't handled correctly

- Fixes #1534
Add Test case for truncated SSL packets

- Related issue: #1534
- Also made sure ByteToMessageDecoder does not wrap EncoderException.
Port ConcurrentHashMapV8 again to get the recent upstream fixes
Add ThreadLocalRandom back because it's used by ForkJoinPool now.
Fix checkstyle
Fix checkstyle
Use ThreadLocalRandom where possible
Add missing final modifier
Fix checkstyle
Faster MessageList iteration in NioSocketChannel.doWrite()
Do not use unreleaseableBuffer and duplicate

.. because it's not as fast as just creating a new direct buffer.
Forgot to commit this class before. Related to [#1433]
Make ByteBuf an abstract class rather than an interface

- 5% improvement in throughput (HelloWorldServer example)
- Made CompositeByteBuf a concrete class (renamed from DefaultCompositeByteBuf) because there's no multiple inheritance in Java

Fixes #1536
[#1539] Fix bug in DefaultChannelGroup.close() which was blocking the close() call on ServerChannel
[#1535] Remove Channel.id() and so fix the possible leakage of the previous used Channel id map

The user can still use Channel.hashCode() for logging. It's just not 100% unique but should be good enough for most cases