Ensure lobby players cannot join without acceptance of the terms in case they change, fixes #5218, as agreed in last staff meeting.
Separate lobby entrance, lobby login and lobby register GUI page.
Since rP14098 they were squashed into a single GUI page;
Adding lots of hardcode to set the visibility of GUI objects;
Reinventing a GUI page manager in JS;
Unintentionally persisting data between pages;
Requiring lots of errorprone case distinctions which are unneeded once relevant GUI objects and code is loaded exclusively.
Revert the revert of rP17581 in rP17584 and continue to prefer objects with separate functions per C++ GUI message type,
reducing the nesting of conditionals per function and reveal codeflow by making input and output variables explicit.
Differential Revision: https://code.wildfiregames.com/D1568
Few comments by: Vladislav, Imarok, gallaecio