Use the same instance of game_state for MP screens and game.

These changes are towards the unification of MP scenario campaigns
initialization.
Reload game config when MP save game is selected.

This guarantees that global game config has all the necessary
information for the game.
Move the set up of default faction from gui to engine (mp::connect).
Allow user to select factions even if side recruit list was specified.

To force user to play with recruit list specified, the "faction"
attribute should be set to "Custom".
Check if leader was carried over and is in [unit] tag (mp::connect).
Use "Custom" faction if "previous_recruits" not empty.
Apply carryover before displaying mp::connect between scenarios.
Allow "Custom" faction for empty recruit lists.

This allows to properly display faction combo and makes a non-hacky way
to specify a side without recruit list.
Add a lock attribute for [multiplayer] sides.

The new "side_configurations_lock" attribute is used as a default value for
gold, income, team and color locks. Later, it should be used to lock
factions and leaders combos as well.

The attribute's default values are "no" for the first scenario and "yes"
for all the other ones.
Adjust faction combos lock for "side_configuration_lock" attribute.
Update mp_game_settings::saved_game after first scenario is played.
Force "Use map settings" if "side_configurations_lock" is set to "yes".
Disable SideWML "faction" attribute for non-first scenarios.
Clean up of mp::connect/wait gotos in play_game().
Update mp::connect tests.