Is there a reason to use `unsafe` to build these messages? Can you just use [`encoding/binary`](http://golang.org/pkg/encoding/binary/) and keep our compiler/runtime-enforced memory safety?