Implement message writer.

should this method take a payloadType & firstFrame? Then you could move those fields to be properties of `FrameSink` which seems like where they really belong.