fixup bugfix 21758 (commit 186e66cec6519606bca5e07209c9a557c78b5e71)
add server debugging output for level
make server level_ reflect true start of game position

previousy, the [side]'s in level_ were updated with controller changes,
so that observers who join would be up to date, since controller changes
were not stored in history. we now change this, so that controller changes
are stored in history

this is in preparation to move all controller tweaks to server-side
move controller tweaks to server

(fixup of 736ceaa6c7e81882c9c5b2e932307b1f1ecb3bfd)

following discussion with Soliton, we move all "controller tweaks"
i.e. assignments of networked side to human on the matching client
at start of game, to be server decisions, performed concurrent with
start of game.

in fact the controller tweaks are performed using
game::change_controller, which is modified so that it doesn't try to
make server messages before the game has started.

when the server receives [start_game] from the host, the server will
change_controller for every side, sending corresponding messages to
all players and observers, which will update them as appropriate.
it will also rewrite level_ so that human sides are "network" and
ai sides are "network_ai", making the level_ correct for an observer
who subsequently joins.

we remove the obsoleted client-side code in playcampaign.cpp,
multiplayer.cpp.
[replay_start] in server replays should match client replays

we delete [multiplayer] from the level in order to construct the
contents of [replay_start], exactly as is done in mp_game_utils.cpp
here:

https://github.com/wesnoth/wesnoth/blob/a4f47a63c7b2c55fd7d8d3cd425ede256b39acdd/src/mp_game_utils.cpp#L188