I thought having the intersections generalized to rays would be more useful. Also, the line<>line intersection had a lot of corner cases that muddied up the logic. Changing it to ray allowed me to clean it up a bit.

Also, admittedly I am using this more for physics collision stuff than for actual graphics. I'm unsure as to how much you could actually use any intersection impls, as I haven't dealt with much in the way of graphics math.

If you want the line<>line intersection back I can put that back in.