Late night changes (I will probably regret)

Bit tired these last few days, hoping I will not regret some of these changes.

Features
--------
Cleaned up the audio code
Added level transitions, with level game object resets
Added level music transitions and an example in the sample game
Added an example of sprite transition (which is silly really, need to add an Animator class)
Added sounds/ui

Bug-fixes
----------
Old collider code had delay after collision until the gameobject behaviour checked its
collider array. Added an onCollision method to the gameObject. This method is called
instantly on a detected collision and the results are much smoother.
Fixed a few glaring issues from the last commit
Merge remote-tracking branch 'origin/master' into gh-pages