Make uninitialization code in DefaultChannel easier to understand

.. by fixing bad / outdated method names
Make sure ChannelHandler.handlerRemoved() is always invoked

- Fixes #1366: No elegant way to free non-in/outbound buffers held by a handler
- handlerRemoved() is now also invoked when a channel is deregistered, as well as when a handler is removed from a pipeline.
- A little bit of clean-up for readability
- Fix a bug in forwardBufferContentAndRemove() where the handler buffers are not freed (mainly because we were relying on channel.isRegistered() to determine if the handler has been removed from inside the handler.
- ChunkedWriteHandler.handlerRemoved() is unnecessary anymore because ChannelPipeline now always forwards the content of the buffer.
Free the cleared buffer as early as possible / Better naming
Fix SnappyFramedDecoder checksum validation and add a pair of suitable unit tests
Clean up DefaultChannelPipelineTest

- Use the local transport in a correct way (i.e. no need to trigger channelActive et al by ourselves)
- Use Promise/Future instead of CountDownLatch where they simplifies
Test if ChannelHandler.handlerRemoved() is called on closure / Reduced timeout
Remove DefaultCompositeByteBuf.lastAccessed and use binary search instead

- Fixes #1364
- Even if a user creates a duplicate/slice, lastAccessed was shared between the derived buffers and it's updated even by a read operation, which made multithread access impossible
Add LengthFieldPrepender.lengthAdjustment parameter
Readability / Fix inception year
Add Javadoc to tarball / Upgrade maven-compiler-plugin

- Fixes #1360
Remove unnecessary inEventLoop() checks in Channel.Unsafe

.. because HeadHandler in the pipeline always ensures those methods are always invoked from the correct I/O thread
[#1317] Allow to use VoidPromise for flush(...), write(...) and sendFile(...)

* This also move rename Channel.Unsafe.voidFuture() to ChannelPropertyAccess.voidPromise()
[#1373] Make SslHandshakeCompletionEvent constructor public
[#1363] Make sure ChannnelConfig.setAutoRead(false) will stop read from socket directly
[#1369] Move ImmediateEventExecutor to common and let it access via a static public field

* Also fix a bug there to return a correct implementation of ProgressivPRomise to work with the
 ImmediateEventExecutor
[#1369] Move ImmediateEventExecutor to common and let it access via a static

* Also fix a bug there to return a correct implementation of ProgressivPRomi
  ImmediateEventExecutor
[#1374] Allow users to all all subprotocols by using * as wildcard
@Deprecate a method as it's not needed anymore
Fix checkstyle
Just some tiny javadoc fixes