findIntersections from  O(N^2) to O(N) time

e.g. for 40k highways, cut time from 21 minutes to 0.18 seconds.

Also only returns 'intersections', no 'crossings', which was
never documented or used anywhere, wasn't quite right, and would add
overhead to the new, lean version.