[WIP] Add serializer interface

Targets #161.
The advantages for having a `ws_object` here are clear: You can do locking without having to implement it again as well as you have a runnable object here, so you can simply call `ws_object_run(serializer)` here. The advantages outperform the disadvantages (which are only overhead, or is there something else) here.