Add abstract serializer and deserializer

This PR introduces the abstract serializer and deserializer as well as an initial version of a message.
Nope, no "m" missing. It's supposed to be `fro`