raycasts against Shapes

I needed raycasts against Shapes for other stuff so I decided to get them done as a separate PR.
Good question.  The shape-vs-shape collision tests really should live in the ShapeCollider namespace and I was following that pattern without much thought, however now that I actually think about it a findRayIntersetion() method should be declared in the Shape base class API -- this would force anyone who made a new FooShape to implement the findRayIntersection() method for it.

The best time to do this would be now, so I'll make the change.