Finished implementing the Message structure and serialization/deserialization

There is still some error handling to be done, but this should give us a foundation on which we can build and test our messages.