Move packet creation to a central location (work in progress)

Move packet creation to a central location for easier review, documentation and compatibility handling.

It is a common problem that badly designed packet formats (e.g. wrong serialization types or bad version handling) is merged to upstream because nobody spots the problems when they are in random locations around the commits. This fixes it, by making most protocol changes clearly identitifiable and reviewable.

This changeset is currently incomplete and shouldn't be merged until it is finished. Many packet creations still have to be moved to the new location in clientserver.cpp.