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

Taking inspiration from d3.map, d3.set is a simple shim for ES6 sets.
Reuse d3_map_prefix
Add d3.geo.albersUsa.invert.
First stab at d3.geo.clipView.

This is a simple stream transformation for the moment.  Note that the
clip region points should be specified in counterclockwise order as
required by d3.geom.polygon, and unlike GeoJSON, the first and last
points should not be coincident.
Add missing polygon{Start,End} calls.
Add Liang–Barsky line clipping for viewport.
Fix vows clobbering our custom asserts.
Add d3.scale.log base. Fixes #928.

Still need to implement sensible behavior for log.ticks without base 10, but I
haven't decided what would be appropriate yet.
More sensible ticks when not base 10.
Merge branch 'master' into rotation
Merge branch 'minor-graticule' into 3.1.0

Conflicts:
	src/geo/interpolate.js
Use the local node_modules/.bin.

This ensures that executables are consistent with the local package.json and
not affected by any globally-installed packages.
Merge branch 'd3.set' of git://github.com/jfirebaugh/d3 into 3.1.0
Merge branch 'albers-usa-invert' of git://github.com/jasondavies/d3 into 3.1.0
Merge branch 'rotation' into 3.1.0