sync random_start time the normal way

we now use the deterministic rng which we also use for start unit unit
traits.
fixup end of scenario saves
remove unnecessary virtual qualifiers
assert that do_init_side functions are never called with bad arg
remove unnecessary arguments

maybe_do_init_side and do_init_side both required a team_index
argument, which was always player_number_ - 1, (checked this with
assertions and playtesting), and which was available in the class
which defined them
remove more unnecessary arguments, from play_controller::play_side
[modify_side] may now set defeat_condition attribute

This was an oversight that missed release 1.11.15.
update changelog
fix gcc compilation
remove unnecessary arguments

All of before_human_turn, play_side, play_turn had an argument
"bool save". The only use of this was by the playsingle controller
to determine whether or not to save an autosave -- it was controlled
in a single place by a single for loop in play_scenario.

Instead of polluting all of these functions, including play_controller,
and replay_controller, with arguments that they ignore, save was
replaced with a member variable of playsingle_controller. This is a
strict refactor in terms of behavior.
Re-add two ctors removed by mistake.
remove outdated code

this check was introduced in b1c76bcb5b8dabf8fe5044698760114e6360d4ea (2003) when this codepath also handled replays.
fix player_type_changed durign ai turn

it is possible that we receive a player_type changed during an ai turn.

especialy this fixes :droid
fixup 77ead906927bec69d9136d349d637458f7a553f0

Testing reveals that this line cannot be removed without breaking
reloads of disconnected games (with uninitialized sides). But, the
argument should be "false" since this is not called from the replay
codepath.
Merge pull request #174 from cbeck88/fixup_end_of_scenario_saves

fixup end of scenario saves

iceiceice writes: does anyone know why we have this line?
https://github.com/wesnoth/wesnoth/blob/master/src/play_controller.cpp#L752
it causes end of scenario saves to be stripped of all units
my theory is that it was for some point in time before carryover was implemented properly
i propose to remove it in 1.12 and master

AI0867 writes: See commit aa2cf7d.
Looks like the carryover refactoring might have made it do the opposite of what it used to.
remove dead code.

player_cfg_ was always NULL.
eliminate archaic functions

end_turn_record and end_turn_record_unlock are only used in one
place, and in succession. We delete them and paste the definitions
inline, which permits some simplification. This is a strict
refactor.
remove unnecessary variable "turn_over_" from play_controllers.

After other refactors, this variable is basically useless -- it
is only used in one function, and indicates to that function if
we called it from the normal sp path, or the mp linger code path.
We choose to replace it with the linger_ variable -- the sp code
path will never follow to this function if linger_ is true, and
if it did it would cause a serious error anyways and corrupt
replays, so we would know if this was happening. So this is a
strict refactor.
eliminate unnecessary argument in play_controller

This is a strict refactor within the parameters of the program.
clean up find_human_team_before function

This is a strict refactor.