Improve client message format

Move away from key/value pairs for message to self-contained maps,
similar to internal game messages