Remove symmetric Math.log.

Since Math.log is a monotonic function for positive values, we can safely remove
the Math.log from both sides of the comparison. The reason Math.log was used
previously is that this is an estimate of error (the log difference between the
desired number of ticks and the actual number of ticks).
Fix #1402 - transition callback order.

Rather than registering new timers, reassign the transition’s timer callback in-
place such that the order of callbacks for transitions is always prioritized
based on when the transition was created.
Remove mouse listeners from intended target.

Related #1381.
Isolate temporary state while touching.

Previously we were trying to be clever and reuse the translate0 state while
touching; it’s simpler to just use a separate variable. Also, this commit now
restores the mousedown listener on touchend, just in case the device happens to
support both mouse and touch.
Fix #1407 - transition.filter crashes on empty.

Also remove unneeded third argument to d3_transition since transition.time is
now stored on the per-node transition object.
Minify color strings.
Color interpolators return strings.

This partially reverts ce6526cfe3b70a8555bbb7b2f235af9c916d34a0. Although this
lacks the occasional convenience of a color instance, it has several advantages:
strings are immutable, so there is no concern of modifying the return value
(#1030); performance is improved; sometimes (e.g., Canvas, IE9 #1371) automatic
string coercion of values is unavailable, so strings are more convenient.
Merge branch 'fix-transition-filter' into 3.2.7
Merge branch 'fix-zoom-mouse-touch' into 3.2.7
Merge branch 'fix-transition-callback-order' into 3.2.7
Merge branch 'optimize-time-ticks' into 3.2.7
Merge branch '3.2.7'
Fix transitions that stop on start.