Rework message serialization

Hi peter, would be glad to hear your input on those changes. :)

Please note that the unit tests fail with python2 and, while I tried my best to keep python2 compatible, I can't really comment what works with python2 and what not, since I'm using python3 exclusively.

Classes that can be (de-)serialized are now sub-classes of 'Serializable'. Since message classes need an extra treatment when it comes to serialization, there is an additional MsgSerializable between them and Serializable.