Improve spline overlap handling.

This follows up on #1485 and attempts to address #1505.

@tshinnic, @mskala, can you test and report anything that's still broken?

I converted SplitMonotonicAt into this function so that it could run in fake mode (providing intersection data without creating anything).