message: -1 doesn't need unsafe conversion

Actually big-endian. I suppose it's little-endian too, since -1 is
really just 0xffffffff, but still a more platform-independent
conversion. One would think Go would have a suite of tools for writing
two's compliment out to a byte array, but alright.
message: moved Offset to MessageAndOffset wrapper