Renamed field IsBerzerk to PermanentBerzerk

It looks like this is set from scripting and never reset. When the game checks for the berzerk logic, it checks Berzerk and PermanentBerzerk, thus they seem to be independent.
Named a method that adds some range to occupied buildings based on their foundation.
Updates to BuildingClass

Added GateStage, which was hidden in alignment bytes and named BunkerState.

Removed some fields that don't exist. BuildingClass was 8 bytes too long (and the last three field names were off by 4 bytes). Also removed the padding.

Moved comment from unknown_718 to RulesClass, where it belongs.
Added FPSCounter with a helper method to get the overall average fps

Not all fields have been made available. There are more, like a timer and some bookkeeping stuff, which aren't that important right now.
Added the const keyword to some more functions that don't change the instance members.
Added GameOptionsClass.
Renamed IsCrashing to IsKamikaze, because there already is a field of that name in TechnoClass.
RadarEventTypes class enum.
CloakState and DamageState converted to class enum.
Target, LastTarget, Destination and LastDestination are of type AbstractClass (otherwise they couldn't be cells).
Renamed GetCrew() to GetCrewCount().
Return type for GetZGradient().