STORE A VERSION OF YOURS BEFORE PULLING

Something really weird is going on in RayCastData. I wrote my own sweep
method just to see if maybe that would help me understand yours, or
maybe just magically work, and I wrote a method called getOtherMin in
RayCastData to help. You can look at it for an explanation. In doing
that, though, I noticed that a RayCastData's list of intersections
never actually contains the point that was originally being cast
towards, and I think that's what's screwing most things up. Overlapping
objects also seem to be causing a lot of issues, but that's a different
problem. I just don't get why the points aren't on the segments. Does
it have to do with the shifting-of-edges thing? Because I think I got
around that. Look at my sweep method.