Added the concept of Tasks and Triggers to be run on the game thread
Separated bounds checks of shapes to a separate class
Moved texturing to a subclass of Shape (TexturedShape)
OpenGL programs now lazily initialise
Same with textures
Fixed crash caused by child shapes being removed whilst drawn
Added automatically shared OpenGL programs with the Program Manager
Fixed crash on pausing the game... somewhat
Implemented texture sharing/ automatic management
Introduced replacement text rendering
Fixed blending bug
Migrated text rendering to new method
Refactored classes to better package structure
Added a multi-use runtime Program creator
Fixed container debug outline drawing
Fixed bug with shared colour arrays
Added method to reuse Vertices members while changing programs (massive memory saving)