Fix resource leak in LengthFieldBasedFrameDecoderTest
Rewrite ChannelOutboundBuffer

- Merge MessageList into ChannelOutboundBuffer
- Make ChannelOutboundBuffer a queue-like data structure so that it is nearly impossible to leak a message
- Make ChannelOutboundBuffer public so that AbstractChannel can expose it to its subclasses.
- TODO: Re-enable gathering write in NioSocketChannel
Checkstyle
Implement gathering writes in NioSocketChannel

- Add some support methods in ChannelOutputBuffer
Make ChannelOutboundBuffer recycled
Fix NPE
Move inFlush0 and outboundBuffer in AbstractChannel to AbstractUnsafe

.. because they are accessed by AbstractUnsafe much more often.
Fix resource leaks in the tests
Merge remote-tracking branch upstream/$:{upbranch}