Made it thread-safe so we don't have to lock at a higher level
"Upload" operations schedule their stuff on the UI thread instead of blocking it
Optimized hot-spots after CPU profiling pass
Changes to fixed timestep behaviour : game will update as requested and will catch up when running slowly, but more than one draw can (and will) occur per cycle. We do NOT sleep anymore, we depend on VSync to limit framerate, which is a lot more reliable.
Removed the background GL context, we schedule or block tasks on the UI thread which run in Tick()