Fix build of all-in-one jar
[#1024] Limit the number of SelectionKey.interestedOps(..) calls for performance reasons
Add FilteredMessageBuf
Clean up abstract ChannelHandler impls / Remove ChannelHandlerContext.hasNext*()

- Rename ChannelHandlerAdapter to ChannelDuplexHandler
- Add ChannelHandlerAdapter that implements only ChannelHandler
- Rename CombinedChannelHandler to CombinedChannelDuplexHandler and
  improve runtime validation
- Remove ChannelInbound/OutboundHandlerAdapter which are not useful
- Make ChannelOutboundByteHandlerAdapter similar to
  ChannelInboundByteHandlerAdapter
- Make the tail and head handler of DefaultChannelPipeline accept both
  bytes and messages.  ChannelHandlerContext.hasNext*() were removed
  because they always return true now.
- Removed various unnecessary null checks.
- Correct method/field names:
  inboundBufferSuspended -> channelReadSuspended
Fix checkstyle

- Basically a workaround for IntelliJ's automatic import optimization
Fix checkstyle again
Fix a regression in ChannelInboundMessageHandlerAdapter

- Should forward the unsupported message to the next inbound buffer rather than the next outbound buffer.
Fix a regression where writing a ByteBuf are discarded
Add the 'nextBufferType' parameter to ByteArrayEncoder like did to StringEncoder / Consistent parameter order
Fix SocketShutdownOutputByPeerTest failure

- With half-close enabled, the selector loop was spinning due to uncleared OP_READ flag.
 - Added some delay to the test for more reliable failure