Add message box dialogs for long-running operations

Operations such as joinServer() run for a while until the timeout is hit. This PR makes the joinServer() method run in a separate thread and shows a message box while waiting.

The JoinServerPopup does almost the same thing as the JoinGame dialog. Maybe we should get rid of the popup in the long run and focus on increasing the usability of the dialog - similar to what was suggested in #1074.

Closes #1078