a check for deterministic mode in mp.

we now check during the start event whether the game is a mp game which
runs in deteministic mode and give an error in this case. This case
shouldn't cause OOS but it allows players  to cheat. I don't do it
earlier because i cannot use the screen during prestart events, and i
don't know about the code earlier (mp_connect).
remove the 'only_attacks' random mode

i came to the conclusion, that the lag for asking the server for a new
seed is neglectable. So we don't need this mode.
fix host reassignes side during choice

Assume the following situation:
2 Players in the game (A (side 1), B (side 2)), and one Observer (C).
it's A's turn.
A has to do a decision (for example unit advanement), A leaves the game
and B decides to assign side 1 to C.
On Client B: When returning from process_network_data side 1 is now controlled by B,
and then gets then reassigned with the next call of
process_network_data, but that's too late becasue handle_generaic_event
already returned and B does the advancement decision for side 1.
Players C gets the the first [change_controller] (A -> B) and then gets
the second change cntroller (B -> C) before getting B's answer to the
user choice. So when C gets the second [change_controller] he does the
decision himself becasue its C's decision an it has not been received
yet. -> the same decision has been made twice -> OOS.
this fixes this problem, by making the host wait for the servers change
controller in this case
revise lobby strings
fixup party full bell

the party full bell code is moved back to the engine, and is
based on checking whether processing the most recent message
has made it now possible to start the game. this seems to be
the simplest logic that will do the right thing, it will now
make the bell play whenever the "I'm ready" button is active

this also addresses bug #21910.

note: the reason we don't check the "silent" flag is that it
causes the sound not to be played in some circumstances where
it should. multiplayer_connect_engine currently returns
value "true" for silent (the second part of result) in all
cases except when a player has been successfully assigned to
a side, in which case it is false. depending on the status of
allow_changes, that might be a time that we want to play the
"ready to start" bell.
provide a desktop notification when game is ready to start

this is played at the same time as the turn bell, it is effectively
the same as a chat message which will cause a desktop popup on
systems that we support this for.

note: we don't check notification preference, because this should
be done in the show_notification function, not the caller.
however, it seems that is only done with DBUS notifications? why
not others?
add game start notification

this is similar to previous commit which adds a "party full"
notification

note: we don't check the notification preference as this should be done
in the notification function and not by the caller. however, it seems
this is only done with DBUS notifications currently? see previous commit
message...
update changelogs
apply disable_notifications preference in all platforms
update changelogs
Fixes for factions, leaders and genders in networked games.

There was some oversight when changes to factions, leaders and genders set
up were made and as a result, in some cases, things were seriously broken.
This is an attempt to fix existing major problems. Some minor problems still
need to be addressed.

Specifically, this commit should fix problems with showing different factions,
leaders and genders lists for non-host and host players for the same sides. And
it should also avoid a situation where non-host player sees a "Custom" faction
even if it should not appear.
Wolves Micro AI: code cleanup
Recruit Rushers Micro AI: remove unused library
Herding Micro AI: code cleanup
Micro AIs: make loop variables more descriptive
Big Animals MAI: check that attack target is enemy of AI side

… not only that it is on a different side.
Animals Micro AIs: code cleanup
Update gamestate_inspector.cpp

most likely this was forgotten in c17d84b12f4b45555fa5ec2b3f51c4fe5a1d67e3 by aynekay
Update controller.cpp

since state_of_game isn't used in this class but gamedata is, i assume, that most likely this was forgotten in c17d84b.
Update variable.cpp