Proper surface normal interpolation for MicroSurface intersections.
Factored RingBuffer out of JobQueue.
Working on displacements and shading.
Changed JobQueue class to create and manage its own threads.

This moves common code into the class, instead of reimplementing
it everywhere.  However, jobs now must be of classes that are callable
without parameters (i.e. operator()(){}).