Let MessageList implement Iterable
Use Correct NoSuchElementException
Make sure WebSocketFrameAggregator and HttpObjectAggregator don't leak ByteBufs
Correctly write MessageList which contains more then one message
Implement cancellation properly for Promise/Future

- Related issue: #1432
- Add Future.isCancellable()
- Add Promise.setUncancellable() which is meant to be used for the party that runs the task uncancellable once started
- Implement Future.isCancelled() and Promise.cancel(boolean) properly
Implement Promise/Future cancellation properly for outbound traffic

- Related issue: #1432
- Make sure the Promise of a write operation is not cancellable before writing out
Implement the cancellation of connection attmpe for NIO and OIO transport

- Related issue: #1432
- Also added test cases to validate the implementation
[#1439] Fix CompositeByteBuf.nioBufferCount() to return the correct number
Fix checkstyle
Cleanup
"  " -> " " / Cleanup
Make PooledByteBuf recyclable regardless its maxCapacity

- Make AbstractByteBuf.maxCapacity internally mutable so that PooledByteBuf is completely recyclable
Make write operation cancellation while it's in progress

.. which should be useful when writing a large buffer/file
Remove unused thread local and its getter
Add GlobalEventExecutor

- Related issue: #1389
- Also extracted SingleThreadEventExecutor.ScheduledFutureTask into a top level class for a reuse
Remove the constructors that uses ImmediateEventExecutor from DefaultChannelGroup

.. which is incorrect in my opinion.

+ minor cleanup
Make EventExecutor.shutdownGracefully() return Future

- Also added EventExecutor.terminationFuture()
- Also fixed type signature problem with Future.add/removeListener()
- Related issue: #1389
Allow appending classpath to the ClassPool of JavassistTypeParameterMatcherGenerator

- Fixes: #1402
- Make JavassistTypeParameterMatcherGenerator public
- Add appendClassPath()
Make JavassistTypeParameterMatcherGenerator.generate() public
Better use NoOpTypeParameterMatcher as a class path source

.. because we tries to load it really