Add DateTime serialization to the FieldLoad/FieldSaver

The dates are serialized using the ISO 8601 format (yyyy-MM-ddTHH:mm:ssK)
because it is human readable, sortable, unambiguous and includes timezone
information.
Support for input validation on TextFieldWidgets

See OnTextEdited(), IsValid(), TextColorInvalid (with the default in metrics.yaml).
New common dialog: TextInputPrompt to get a string from the user

For both ra and cnc
Improve replay metadata and the replay browser

List of changes:

* Better and more filters with new layout, for both mods.

* Rename/Delete/Detele all functionality.

* Simplified ReplayMetadata class considerably by introducing a new
GameInformation data object. The new GameInformation class contains
more information than previously available so the new solution is not
compatible with old replays, meaning it can't read old replays.

* Better and cleaner game information gathering in order to be written
at the end of the replay file.

* Revert changes to ReplayConnection, no longer necessary.

* Better exception message on missing sprites and fonts.

* New "SpawnOccupant" class that holds all the information needed by the
MapPreviewWidget to visualize a spawn point. It was using Session.Client
before and it was necessary to separate it to be able to show information
not available at lobby time.

* Fix keyboard focus UI bug when closing a window would not remove focus.