Ray::at should be public
Add sphere geometry
Move to uints for w/h params
Migrate to returning the DifferentialGeometry through an Option

This is better as we may not actually hit the geometry, in which case
there's nothing to set as the dg's geom member and we really should
just not return a DifferentialGeometry at all. This expresses this
pretty nicely
First ray traced image!