Added missing include guards.
SortKeys are now cached.

Depth and pass are updated before submission to the renderer.
Made all additive lighting passes have pass = 1.

This is so that the pass bits in the SortKey don't wrap around to 0. The
additive passes can happen in any order so it doesn't matter if the
sorting jumbles them up.
Added ability to cut off draw calls.

This is useful to step through and see exactly how a scene is being
rendered (and it helped me notice that I forgot to make the particle
material unlit).