Added a recurse() method to Material to handle the basics of recursive ray casting
Added more test objects to TestScene1, including a bunch of dielectric spheres
Noted the need to not normalize the ray direction after transformation in MatrixTransformSurface
Implemented a basic (and slightly messy) dielectric material shader.  It looks slightly incorrect and needs work.
Added a refractiveIndex member to ShadingData for determining the change in refractive index when entering and leaving a material
Added a missing normalize call the direction vector generated in PinholeCamera's getRay() method
Added a new random color method to Color
Removed refractive index from RayData
Moved the test spheres a bit closer to the camera in TestScene1
Added an experimental flip for the refractive index on a ray exiting the material in DielectricMaterial