Added basic multithreading, antialiasing

Also added copy constructors to many object types.

Changed 'light' to interface, so that we can have SphereLights that are
both Spheres and Lights, and are intersectable.