Userconnection

UserConnection refactoring.

- Allow both native & websocket connections to use the same UserConnection base class
- Introduce the concept of protocol versioning
- Add functions in TundraLogic::Server to connect & disconnect external UserConnections, and handle their network messages
- Change the LoginPropertyMap to a QVariantMap. It's still encoded as xml for native clients
- Remove the WebSocketSyncManager as unnecessary, simplify WebSocketServer code