Added geoJSON codec to spatially.convert

It's been hanging around half implemented for a while, seemed like an
easy enough thing to do.
Added isIsolated to GraphNode.

A node is considered isolated if no edges in the graph terminate
at the node.
Added removeNode and isIsolated methods

Implementations are delegated to the underlying graph.
Reimplemented Edge.splitCoordinates

An intersection was being added incorrectly if there was an intersection
at the start of the initial segment of the edge.
Implementation is a lot saner now.
Added test case to cover situation
Working towards completing overlay implementation
Intersector now supports arbitrary length intersections.

Previously, coordinate and line segment intersections were two different
types of intersections. Now, the intersection_info collects adjacent
line segments together into a single intersection.