Move and refactor teams initialization from gui to engine (mp::connect).
Move side engine creation from gui to engine (mp::connect).
Clean up of mp::connect(::engine).

Methods which were called only once was removed and their bodies were
used instead of a call to them.

Some methods for mp::connect UI update were merged for the sake of
readability and simplicity.
Save reserved sides information only before updating game state.

Fixes a bug: if user joined a game, but cancelled "Choose a faction",
that user won't longer be available to join that game.