WIP: MarshalBinary

Taking inspiration from @bjeanes' Playground code here: http://play.golang.org/p/uFj1mdBKG6.

What this is attempting to do is build a binary representation from a message (i.e. the opposite of the `Decode` function), in preparation for sending it back down the pipe and out to the world.

I still have no idea what I'm doing here, but this *feels* like the right track.
Also, unless Go specifically works around this, `unsafe.Sizeof(m.Header)` might be returning the size of the pointer itself which would be a constant size, anyway.