don't call user_interace during screenlock
don't use sycned checkup for wml things

i think it's better if we seperate wml things from core things here. Not
that it casues OOS or similar, but because it makes things easier.
remove a checksum

we already do a checksum in place_recruit so we don't need this one.
fix 21866
leave the synced context for drawing

if we call draw during the synced context we don't want that possible
calls of rng during the draw confuse the rng. This can for example happen
if someone uses the rng in a SUF for an ability.
add replay::add_start_if_not_there_yet

the intention is to fix 21927 in a later patch
fix 21926

we now add a [start] in replays if there is none.
fix 21909

previously we passed a temporary object and saved a reference to it in
unit_callable contructor. Leading to sefaults and undefined bahaviour.
fix a segfault in lua_function in SUF

i dont know the exact reason, but with the previous implementation i got
a sefault appearing randomly at programm closing.
fix wml menu events

i accidently typed "source" instead of "last_select" with the result, that wml menu event always caused a select event to be executed.
always allow SAVE_REPLAY

We diallow save game during action because that would lead to broken saves, but this is not true for save_replay.
If, for some reason, we get stuck inside a an action we cannot save the game, with this we can at least save the replay in this case and create a vaild save with the 'replaying + saving durign replay' strategy.
fix 21933

durign human turns, we now use check_victory which impied check_end_level, just like we du during ai turns.
I think actions having different when invoked by ai can never be the intended behaviour.
we also set tm->set_lost() before calling check_turn_end to that the lost_ value is also correct when ending with [endlevel]
add a check_victory after moves.

perviously it was possible that a moveto event removed units and we didnt get victory/defeat.
add a comment in gamestatus.hpp
LoW: Initialize units in start events

previously this was done in side 1 turn 1 events because start events
wasn't synced.

After the fix for 21933 players now loose when they have no units after
start events, so we need to do this in a start event.

replacing check_victory with check_end_level after start events in
play_controller.cpp line 572 doesn't work because we still have the
check_victory in playmp_controller when waiting
for remote packages, that check_victory is needed in order to sync the
behavior of ai turns which calls check_victory after every action on the
local client.
fix abort in wait_for_upload
fixup wait_for_upload
make network::error get through lua

by creating a tlua_jailbreak_exception of version network::error.
rename replay [checkup] tags to [result]

before it looked like this:
[checkup]
[checkup]
a=b
[/checkup]
[checkup]
c=d
[/checkup]
[/checkup]
now it looks like:
[checkup]
[result]
a=b
[/result]
[result]
c=d
[/result]
[/checkup]
more robust replaying

instead of giving an assertion error after the OOS message we now

1) ignore dependent comments when we find them but didn't expect them
2) save commands for later when we find them while expecting another
dependent command. In this case we try to get a correct dependent
command by querying the user.

after we showed the OOS message ofc.