Refactor Message.

- Remove trash var from Message.
- More flexible constructor.
- Size of bodies available.
Parse input stream more carefully.

- Update tests.
Merge branch 'refactor/client'