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.sphericalDistance

iD.geo.euclideanDistance should only be used for calculations of 
projected coordinates or display (pixel) coordinates.

iD.geo.sphericalDistance calculates approximate geographical 
distances, accounting for distortions at higher latitudes. This 
can be used for determining the nearest node (operations.Delete,
actions.Circularize) or relative length comparisons (actions.Split).
Clean up
fix test case "does not delete tagged nodes" of iD.actions.Straighten

The nodes.sort() statement caused some trouble in older browsers
such as (FF 20, Chromium 25). Also, the straighten action should
conserve node order. Thus, the sorting made the test weaker than
it had to be.

This just removes the unnecessary sorting.
Clean up
Limit squaring to near square or near straight nodes
Remove unused variables
Show relation documentation for relation presets

See http://taginfo.openstreetmap.org/taginfo/apidoc#api_4_relation_wiki_pages

Fixes #1862.
Parallelism
Filter on combobox value, not title (fixes #1836)
Use generic access value as placeholder (fixes #1780)
Adjust the timing of localStorage saves

If localStorage writes were free, we'd want to just save
on every history change. Second best is to debounce the
write.

Writing on mode change is problematic; it sometimes happens
when not desired and sometimes doesn't happen when desired.

Fixes #1857.