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.