adding step-middle as interpolation method
change step-middle to just step
cleaner formatting for step interpolation method
Add brush.clamp method to specify to clamp extent to range or not
Make clamp implementation more similar to extent
Don't consider dragging when determining to clamp or not
Add scale.quantize.invert
Rename quantize.invert to quantize.invertExtent
Use d3_Map instead of scale.ordinal in scale.quantize.invertExtent
Add test for scale.quantize.invertExtent
Implement scale.quantize.invertExtent with Array.indexOf
Add test for scale.quantize.invertExtent: arbitrary range values
scale.quantize.invertExtent returns null when y is not in the range
Add test for scale.quantize.invertExtent: out-of-range values and duplicate values in the range
Allow hue, chroma or saturation to be undefined.

In HSL space, grayscale colors can now have undefined hue rather than assuming a
hue of 0°; likewise black and white can have undefined saturation rather than
assuming 0%. In HCL space, black can now have undefined hue and chroma. (For
non-black grayscale colors, including white, hue and chroma are implied by the
D65 standard referent.)

When interpolating between colors with undefined hue, saturation or chroma, the
defined value is used when available. For example, when interpolating from black
to blue in HCL space, the intermediate colors are now dark blues (#241178)
rather than dark purples (#600054).

Fixes #833.
Remove duplicate code.
Add quadtree.extent. Fixes #1207.
Add {cluster,tree}.nodeSize. Fixes #317.
Don't build package.json. Fixes #1213.
Safer clean.