Implement actual TransformStream API

It's totally cool to have an "object stream" where data events are
made of things other than buffers and strings.

This way you can pipe the MessageStream instance into other transform streams. For example, you could use something like [trumpet](https://npm.im/trumpet) to render html directly from a message stream.