All rendering code is commented out for now. It will need to be
largely rewritten after this refactor is done, most likely.
This commit gets the basic new scene parsing working, with the basic
new data structures.
More specifically: prior to this, SurfaceLights returned the
shadow ray direction vector to use. That was fine, but it
kept the responsibility of generating proper offsets (to account
for floating point error) inside the lights.
Now the SurfaceLights return the world-space point on the light
to sample, along with its surface normal and error magnitude.
This allows the robust shadow ray generation code to be in one
place inside the renderer code.