Client discovery + basic light API

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.
:+1:  There's no good reason. I either made a mistake via a typo or via using a signed int instead of an unsigned int, wherein 14 probably would work but we aren't using signed here. Sorry if that wasn't clear.