Correctly handle Channel.read() and ChannelHandlerContext.read()