* Un-hardcode behavior to make a component not saved to map file.
MapSaveId is a special component that can't be saved to map files due to a hardcoded type check. This behavior can now be applied to any component with [UnsavedComponent].
Moved "component registration" attributes into a single file because they don't deserve their own (poorly organized) .cs files.
* Add ITileDefinitionManager.TryGetDefinition
Try-pattern version of the existing indexers.
* Preserve tile maps when saving maps
This changes the map saver and loader code so that the "tilemap" can be preserved between map modifications as much as possible.
The tile map from the loaded map gets stored onto MapSaveTileMapComponent components on all loaded grids. This tile map is then used when saving, meaning that changes to the engine's internal tile IDs do not cause diffs.
Fixes#5000
* Changelog
* Fix tests
* Removed the Interfaces folder.
* All objects inside the GameObjects subfolders are now in the GameObjects namespace.
* Added a Resharper DotSettings file to mark the GameObjects subfolders as not providing namespaces.
* Simplified Robust.client.Graphics namespace.
* Automated remove redundant using statements.