Fixed "current_player" being assigned incorrectly (mp::connect_engine).

1st case:
Overwriting "current_player" with default value produces an incorrect
side config and causes the server to not recognize the player if its
username is not the same as "current_player" value. This is not
desirable, since a different player might be assigned to an ex-reserverd
side or a player might just simply change his/her username.

2nd case:
Using default value for "current_player" if no player has taken that
side, results in setting wrong controller in case side was reserved for
host.
Revert 0ac9f9c and adjust controllers set up.

The commit was reverted because "allow_player" value is being checked in
other places. This resulted in different default values for
"allow_player" in the different places.
Don't count side with controller="reserved" as available.
Keep default "recruit" for correct faction lists initialization.
Add missing out-of-range checks (mp::wait).
Fixed game's description in lobby.
Reload game config in mp::wait.

The game config is being reloaded to make sure that players have the
same config as host, if possible.

Note that reloading only happens when it is necessary and it would not
happen if host's cache defines matches the player's ones. I.e. regular
MP scenarios won't trigger a config reload.