Hide protocol detail from users
readableBytes() ==0 -> !isReadable()
Also record retain() and release()
Checkstyle
Add ReferenceCountUtil.releaseLater() to make writing tests easy with ReferenceCounteds
Fix false-positive leaks

- All derived buffers and swapped buffers of a leak-aware buffer must be wrapped again with the leak-aware buffer
Add missing synchronization
Fix NoSuchElementException raised by ChannelInitializer
Fix all leaks reported during tests

- One notable leak is from WebSocketFrameAggregator
- All other leaks are from tests
Revert "Fix NoSuchElementException raised by ChannelInitializer"

This reverts commit 3c453f5dbaf8524d46c9fb3285d2ea7ae8bdb5b6.
Fix NoSuchElementException raised by ChannelInitializer

.. again.
Fix buffer leak in AbstractMemoryHttpData
Fix a buffer leak in BinaryMemcacheObjectAggregatorTest
Fix a buffer leak in BinaryMemcacheObjectAggregatorTest
Fixed various buffer leaks in FixedCompositeByteBufTest
Fixed buffer leaks in LoggingHandlerTest
Fix buffer leaks in BinaryMemcacheEncoderTest
Fix a buffer leak in BinaryMemcacheDecoder
Fix buffer leaks in BinaryMemcacheDecoderTest
Fix another buffer leak in BinaryMemcacheDecoderTest