Clean up the Raytracer code a bit and make the rendering asynchronous.

I've used your code for a demo and thought you'd appreciate the clean-ups I've done along the way. The biggest change is probably using the vector_math package for all vectors -- and separating the rendering from the display.