Replace the huge main by a stupid temporary Client struct.
Add static make function to Message so that you don't have to manually write constructors for Message types.
Rename MessageTypeInfo to MessageType. Fix MessageHub map creation from type list.