Resend gamestate when resynching
This replaces the current resynch system with a complete gamestate reload, which lets it recover from a lot more situations, rather than just trivial errors with the player movement code.
Although technically the old resynch code is completely gone, the interface is mostly the same as before:
it is still possible to kick desynched players instead of resynching them by setting resynchattempts 0
,
and the "Resynching..." HUD is still shown during the process.
In order to prevent excessive "resynch hell" in cases where the game desynches too often, there is a per-client 15 second cooldown during which the gamestate cannot be resent. Also, in order to avoid stressing the server and to make the process faster, the gamestate will only be resent to one client at a time.