Groundwork for multithreaded update/render loop

Just started implementing the groundwork for multithreading the engine.

I've implemented a Triple Buffer for data, for inter-thread
communication, with generics.

Moved all the testing code into a "Draw" thread. It currently contains
all the code, inc. the update code.

Currently implementing a rendering manager to allow communication of
rendered objects between threads. The render manager will allow any
number of renders of a static scene in a single frame, meaning that it's
pretty simple to go stereoscopic.