Cleanup.
Add support for input events in scene node scripts.
Add new playback controls to the scene editor.

The main addition here is the pause button.
Stop posting input events to scene nodes if the scene is paused.

This change might be reverted if it is too restrictive.
Fix a null pointer dereference.
Fix a bug where the shadow map was not being set on the lighting shader correctly.
A temporary fix for a crash when closing the game while a scene was loaded in the editor.
Replace an assert with a normal 'if' statement.

The issue here is that it's possible for a scene node to be null if it was deleted. Currently, an OnObjectLeave event is not posted for deleted scene nodes. When this is implement, it may be possible to revert this back to an assert.
A temporary solution for fixing a bug where the sprites would stop facing the camera when in Pause mode in the scene editor.

This actually introduces another problem where input events are posted to the scene nodes while in Pause mode. A better fix for this sprite issue will happen after the new renderer experiments is complete.
Update all components to use the new declaration system.