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()