Add major & minor extent and step to graticule.

Fixes #1009.
Default graticule step is now 10°. Better tests.
Remove unnecessary argument.
Deprecate d3.geo.greatArc; add d3.geo.distance.

Now that D3 supports great-arc interpolation automatically for projections,
there is no need for a great arc feature generator, as a simple LineString
geometry object is equivalent. For the same reason, d3.geo.graticule does not
need to use supersampling on meridians, since meridians are great arcs.

This commit also adds d3.geo.distance(a, b) for computing the length of the
great arc between points a and b in radians, as a replacement for the
deprecated d3.geo.greatArc method, and a faster alternative to constructing a
d3.geo.interpolate solely to measure distance.

Fixes #1021 #1024.
d3.geo.distance: accuracy for small distances.
Add d3.geo.length.
Add d3.set

Taking inspiration from d3.map, d3.set is a simple shim for ES6 sets.
Reuse d3_map_prefix
Allow d3.map to be used with d3.nest’s map.

You can now pass a map type to d3.nest’s map function. For example, if you pass
d3.map as the second argument to nest.map(array, type), the returned value will
be an instance of d3.map rather than a bar object. In addition to offering
better protection against built-in property names, d3.map offers more convenient
iteration methods.
Add polyfill for mouseenter and mouseleave.

Fixes #931.
Add d3.geo.albersUsa.invert.
Expose projection.rotation.

This is useful if you want to specify the center in non-rotated coordinates.
Merge branch 'geo-length' of https://github.com/jasondavies/d3 into geo-length
Add tests for d3.geo.length.

Also return the perimeter for polygons.
Allow before function for selection.insert.

Similar to selection.select(function), the before argument to selection.insert
can now be specified as a function, so that the caller can specify the before
node dynamically. Supersedes #1071.
Allow row conversion function for d3.dsv.parse.
Allow optional row conversion function to d3_dsv.
Slightly more concise.
Add d3.layout.voronoi.

A more user-friendly version of d3.geom.voronoi. Fixes #1100.
Expose d3.geo.rotation.

Seems clumsy to only expose this via projection.rotation, and if we do expose it
by itself, it seems redundant to also expose projection.rotation. So instead we
now have d3.geo.rotation.