Lots of cleanup

Don't explicity call ctx.fireChannelRead from MessageDecoder