GameData (.fgd) is now managed, game entities are now loaded at runtime from their type information instead of from .fgd files. This also runs both ways and let's us access all GameData from C#.
* Managed classes for GameData, can be loaded directly from LocalAddon or RemotePackage.
* Map compiler doesn't load .fgds, make Hammer serialize g_pGameData to KV3 and load it in the map compiler
* Clean up native GameData code (fgdlib) making it a shit load less confusing to work with, name globals, classes, vars.. properly, delete legacy code, document stuff etc.
* Copy native GameData (loaded from core .fgd) back to C# GameData for usage in tools addon
* [Hammer] attributes rewritten to not use StringBuilder, pass dictionary / list references and fill those up, obsolete the old tihngs
* Remove FGDWriter for game entities, no longer need to serialize it every game start
* Remove .fgds of anything that has a managed type, remove legacy syntax on remaining .fgd files (use KV3 so we can remove a lot of code)
Give all entities nice [Display, Category, Icon] attributes
Glue Hammer Entity tool UI to C#, can use entities for games straight from here, searchable, show what game it's from etc. needs a bit more work to not look shit though