Add abstract serializer and deserializer

This PR introduces the abstract serializer and deserializer as well as an initial version of a message.
The call to `ws_object_init()` is missing completely here (above the `self->obj.id =` line, of course).