Previous commit broke coordinate locator.

As isOnLine was changed from accepting an Array of Coordinates to an
Iterable of LineSegments
Fixed potential memory leak

Graph nodes and edges now unlink themselves from the graph on removal.

* It is now an error to remove a node if it has terminating edges in the
  graph
* Added tests for terminating edges
Added export of lib/base/line_segment.dart

Since it will probably also be useful
Coordinte locator tests

Coordinate locator tests are now run as part of algorithm/all_tests.dart
Geometry graph initialization

Geometries are added during initialization and the graph is
self-intersected and noded (edges are split and any intersection point
is added as a node to the graph)

Next up: complete edge labelling