segment to segment intersection (2d)