more clever splitting of closed ways

if a way is closed, iD needs to choose a second node to
split the way at.

This algorithm looks for a node that is both far away from
the initial node in terms of way segment length and nearby
in terms of beeline-distance. This assures that areas get
split on the most "natural" points (independent of the number
of nodes).

For example: bone-shaped areas get split across their waist-
line, circles across the diameter.
add iD.geo.geoDist for (approximate, relative) geographical distance

iD.geo.dist returns the euclidian distance, and should therefore
only be used for calculations of projected coordinates or
display (pixel) coordinates.

This introduces a function for approximate geographical distances
that accounts for distortions at higher latitudes. This metric can
be used for determining the nearest node (operations.Delete,
actions.Circularize) or relative length comparisons (actions.Split).
fix tests

splitting of closed ways now requires the nodes to have coordinates
rename iD.geo.*dist methods for clarity

iD.geo.dist() becomes euclidianDistance()
iD.geo.geoDist() becomes sphericalDistance()

sphericalDistance now returns an absolute distance in meters.

add unit tests for sphericalDistance.