The decoder lacks the checks for the maximum length of the variable header and the payload.  I would suggest adding `DecoderState.BAD_MESSAGE` and handle a malformed or too large messages there, just like `HttpObjectDecoder` does.  `Message` will need to provide the accessors to its `DecoderResult` just like we do with `HttpObject`.