add beforesend event to xhr. fixes #1397
Fix #1435 - use ten ticks by default.

This applies to linear.ticks and linear.tickFormat, and their equivalents on pow
and sqrt scales. In addition it changes the behavior of linear.nice() so that it
is equivalent to linear.nice(10) for consistency.
Fix #1437 - add identity projection.

The identity projection is equivalent to setting path.projection(null), except
that you can apply post-projection features such as viewport clipping.
Save two bytes.
Merge branch 'xhr-beforesend-event' of git://github.com/adnan-wahab/d3 into xhr-beforesend
Add test for beforesend listener.
More readable.
Add zoomstart and zoomend events. Fixes #1422.
Remove axis.tickSubdivide. Fixes #1115.
Add axis.{inner,outer}TickSize. Fixes #1394.
Fix #1410 - add selection.interrupt.

This also changes the imports so that it’s possible to build a version of D3
with selections but without transitions.
Add brush transitions. Fixes #1385.

However, since the new extent is set to trigger the transition, this does not
provide interpolation of the extent in data-space, making it somewhat cumbersome
to perform live brush intersection during the transition.
Dispatch brush events on redraw.

The brush can interpolate its extent automatically during a transition,
dispatching brush events to notify listeners of the changing extent.
Fix copy-on-write on clear.
Interrupt transition on brushstart, if any.
Simplify.
No brushstart and brushend on immediate change.
Use the "brush" namespace for brush events.
Only notify when extent changes.

This avoids unnecessary work and some infinite loops.
Restructure state to shave a few bytes.