fn split_at_intersections(edges: &[Edge], tolerance: f32) -> Vec<Edge>
Split every edge at its intersections with every other edge. Returns the (possibly larger) fragment list.