Scripting: Add Game.SaveGameState() and Game.LoadGameState() functions.
Scripting: Add Game.OnSerializeGameState() and Game.OnDeserializeGameState() events.

This will be used by the default game state manager for saving/loading global game data, but it
can be used however a game wants. This is not called by Game::SerializeGameState(), but instead
optionally called by a game state manager in it's Serialize() method.
Scripting: Remove some deprecated FFI functions.
Remove the "f" suffix from a material shader part.

This fixes a warning on some GPUs.
Remove the old game state system.

This has been superseded by the game state manager system.
Fix a bug when calling OnSerialize on a scene node.
Script: Have OnDeserialize() use the deserializer's chunk stack system.
Editor: Improve the way the script component panel is updated.

This fixes a crash when trying to attach a script to a scene node that is
linked to a prefab.
Scripting: Fix a bug with the OnDeserialize() handler.
Whitespace.
Improvements to the way the stack stack is handled in the scene editor.

This fixes a few issues:
 - When loading a scene, it is no longer marked as modified by default.
 - Fixes a bug where the state of a scene node on the initial commit was incorrect.
 - Generally easier to enable/disable all mutation operations across the entire state stack.