Move the initialization of the new level config to a different file.

This is initial step to unify the level initialization between
multiplayer_connect.cpp and playcampaign.cpp for multiplayer games.
Move the next level initialization for the non-host to a new function.
Move scenario & map generation to functions. Reduces code duplication.
Display mp::connect (temporary dummy) in between mp scenarios.

Currently, the screen between mp scenarios is displayed for local games
only.

The missing information to 'set_from_config()' and 'to_config()' were
added to have sufficient information to display mp::connect.
Apply changes from mp::connect in between MP campaign's scenarios.

The mp::connect is now shown only with '--debug' option. This avoids
multiple factions being applied to the same side over multiple
scenarios.
Refactor faction set up in multiplayer.

The code has been improved to switch from index lookups to lookups by
ids. This makes the implementation more flexible for future improvements
and easier for maintenance.

The "Custom" faction has been added. It is automatically chosen and
locked for sides with a recruit list. The sides without recruit list
won't see it in their faction choice combo box.

The recruit list in side will be now be overriden by a faction if map
settings are not in use.
Initial step for splitting mp::connect into gui and engine.
Merge leader_list_manager with mp::connect.

The leader_list_manager was not too useful and didn't go well with the
changes of splitting the mp::connect gui and engine. Also, it was
accessing/modifying gui::combo directly, making it harder to maintain
the code.

mp::wait still uses leader_list_manager, because later mp::connect
should be used by both host and non-host players, making it unnecessary
to update mp::wait. However, if that won't happen, some duplicating
functions could be moved to some file, which could be accessed by both
MP screens.
Refactor leaders and genders set up (mp::connect).

Many glitches related to leaders and genders should be fixed with this
commit.
Second step of splitting mp::connect into gui and engine.
Clean up & polish of mp::connect(::engine).
Move network code from gui to engine (mp::connect).
Update Scons script to work with colorgcc.
Add unit tests for mp::connect. Work in progress.
Display mp::wait (temporary dummy) in between mp::scenarios.

The screen is displayed only if '--campaign-screens' command line
option was specified. The same now goes for mp::connect screen for the
game's host.

Server has been modified to not immediately start the game after
'store_next_scenario', but to wait for explicit 'start_game'.

Minor changes to parameter passing inside multiplayer.?pp have been
made as well.
Move the init of leaders and genders list from mp::connect to mp::ui.
Unify leaders and genders set up between mp::connect and mp::wait.

The relevant functions from mp::connect were moved to mp::ui to enable
them to use by mp::wait as well. This is not the most elegant solution,
but in the future mp::connect and mp::wait should be merged into one,
and those functions could be moved back to where they were.

leader_list.?pp has been removed since it is no longer used.
Improve factions, leaders & genders related code.
Revert to a default login in case of an EMPTY_WRAPPED_STRING.
Refactor users related code (mp::connect).