Changed the code to use references instead of pointers.
Moved missing multi dispatch methods to their rightful place.
Fixed problem in some of the implementations of intersect.

Initial implementation of collide.