Update VC++ project.
Have scenes use the new scene node container.

This new container should allow faster iteration of the scene nodes and also provides some foundations for the new state restoration system.
Update the serialized format of Scene and SceneNode to bring up to date with the new ID system.
Add empty framework for the new scene state stack system.
More groundwork on the new scene state stack system.
More ground work on the scene state stack system.

With this commit the branching foundations have been laid down. Everything is untested at the moment.
More work on the scene state stack framework.

This code is still completely untested.
Some fixes to the scene state stack system.
Beginning of integration of the new undo/redo system in the scene editor which uses the new scene state stack system.
Small improvements to SceneNode.
Now only save scene nodes to the scene state stack if serialization is enabled.

This is a bit unintuitive so I might change terminology later on.
Improve the way state stack staging is enabled/disabled on individual scene nodes.
Set some foundations for a new system that will notify a scene when a component of a scene node has changed.

This system is needed to make it easier to mark scene nodes as modified for a scene's state stack.
Have components post OnChanged events to the owner scene as they are modified.
Add a scene event handler for when a state stack frame is committed.
Further integrate the new scene state stack system into the editor for undo/redo.

This is still just the beginning. No actual state restoration is done yet.
Add a class representing the staging area of the scene state stack.

This class isn't actually used anywhere yet.
Add a simple structure representing the commands that need to be executed on a scene in order to restore it to a different state.

This is only used with the state stack.
Have the editor use the new scene state stack system for undo/redo.

There are probably some bugs still lingering around with this commit. There is also quite a bit of commented code which will be removed in the next commit.
Move some method implementations from SceneNode into the .cpp file.

This commit also contains a temporary fix for a deserialization bug in SceneNode.