Added coordinate locator to algorithm.all_tests
Added projectOther to tuple

Already had a method to retrieve the element based on it's index,
now has a method to retrieve the element which doesn't match the index
Added midpoint getter to linesegment

Pretty self explanatory
Edge now leaves no isolated edges on removal

Previously, deleting an edge would leave an isolated edge, because
the hashCode would be modified before looking up the edge to remove
in the set.  This was changed to removing all edges with no forward
or backward edges from the graph.

* Also added a toString implementation to DirectedEdge