(fixes #23) writes tests for Surface and Line Modules, and also modifies Intersection so that either l1 or l2 can be vertical