Fix a bug where a ChannelFutureListener can allow Unsafe.close() and Unsafe.flush() to overlap and reenter from flush() to close().

 - Fixes #1600
Make the cleanup logic in ChannelOutboundBuffer more robust

- Fixes #1601
Fix checkstyle
Cleanup
Grammar - Fixes #1598
[maven-release-plugin] prepare release netty-4.0.3.Final
[maven-release-plugin] prepare for next development iteration
Merge remote-tracking branch upstream/$:{upbranch}