MASSIVE CHANGE. Make all resources (Shaders, Textures, Materials, Sounds etc.) ref-counted
Fix some timing issues and add a step signal
Now there is a step signal, there's no need for the argument to update()
Start garbage collecting meshes and materials
Make sure texture units have a reference to their parent MaterialPass
Garbage collect textures
Garbage collect shaders and sounds. Remove a map lookup in the batching code by accessing the shader directly through the material pass
Lose the heirarchical resource management because it was over complicated and dumb. Make the sprite class take a SubSceneRef to prevent a crash on destruction if the Scene has already been destroyed
Now that sounds are garbage collector, the attachment and playing must be separated. This makes more sense anyway and makes moving to multiple sounds per source easier
'Fix' the Sprite class, really we're just working around the fact that entities aren't properly connected to meshes