Respect bounded buffers in decoders.

- Introduce FoldedMessage which is the way to return more then one message from a Decoder
- This replaced the use of Object[] and is so more clear
Rename Buf.ensureIsWritable(..) to Buf.checkWritable(..)