Moves the physics updates to a synchronized thread

After some analysis, it looks like the texture upload to the GPU
was blocking the CPU without utilizing it for about 10ms. This
significantly reduced FPS. To improve this, we now have a separate
update thread, which is synchronized with the render thread, but
which can continue to update while this texture upload is occuring.