According to http://www.geojson.org/geojson-spec.html coords are long/lat.
Added utils/eachCoords(GeoJSON, action).

I realize now that there might be confision between Coord (every [x,y]-like
object in a GeoJSON) and Coords (every [[x1,y1],[x2,y2],..]) so eachCoord was
re-labeled eachPoint. But this has nothing to do with the GeoJSON "Point" type,
so nothing improved much. This new function, however applies action to every
array of connected vertices.
Implemented Douglas-Peucker polygon reduction as utils/simplify.

(not tested yet)
Refined Douglas-Peucker error metric.

The old metric pretended all lines where infinitely long where in fact there is
a difference between a point being close to the line segment of just close to
the line. By 'line' I mean the line segment continued beyond the points
defining it. There is a nice ASCII sketch describing the idea.
Applied new metric to generalize to Lines and Polygons.

Polygons have identical beginning and end coords, and 1.0/dot(d,d) yields
infinity. I worked around this problem by simplifying from coord 1-N/2 and from
N/2+1-N, instead of just 1-N. This works fine with Polygons but leaves Lines
untouched if N<4. The new metric allows me to ignore this distinction.
Added utils/clone(GeoJSON) to replace JSON.parse(JSON.stringify()).

Because I suspect numbers are slightly altered by the previous method.
Collected 'doc' and 'GeoJSON' object into one emit().

Because _list/bbox-filter does not care if those are one or two rows. If we
work with 2000k+ Point-GeoJSON (that are likely to be assigned to just one
document), we would need to process 40000k rows otherwise which is stupid.
Fixed, cleaned up and beautified utils/simplify.

Some vector calculations had typos and I messed up the 'coord' parameter.
Since I will store the bbox in GeoJSON anyway, I shall make it default.

Also I probably will need to chain bbox(simplify(clone(GeoJSON))) like this
because simplified geometries might have a different bounding box. Not sure yet
if this is an advantage.