Some more placeholder code which should have been done in the previous commit.
Add the ability to set a minimum for automatically generated scene node IDs in a scene.

This changes the serialization format.
Add methods to Scene to allow simple 'for' loop iteration of the scene nodes.
Remove some unneeded stuff from SceneEditor and EditorMetadataComponent.
Fix a bug in the scene state stack where a deleted scene node is referenced in the hierarchy.
Have the scene editor use a minimum ID for auto-generated scene node IDs.

The idea is that system nodes take up the first IDs with enough room for adding new ones as development continues. There is room for 16384 system nodes which should be well and truly enough.
Add a notification for a certain condition in Scene::CreateNewSceneNode(GTCore::Deserializer &).
Fix a bug where a scene was not being notified of a change in transformation when the parent of a scene node changes.
A small, but important change to the behaviour of Scene::CreateNewSceneNode(GTCore::Deserializer &).

This change allows the caller to ask the function to generate a new ID if a scene node of the same ID already exists. Defaults to false, which is the previous functionality. This might change to true in the future, or might even become the only option.
Fix duplication of scene nodes with children.
Fix a stupid bug in the scene editor's hierarchy panel where scene nodes were being unnecessarily selected and deselected which was causing a noticeable slow down.