Allow ease/duration to be set in tween factory.

Since the transition duration is not needed until the first tick, the
duration can still be modified either in a "start" event listener, or in
a tween factory.  This allows a behaviour such as d3.behavior.zoom to
use an arbitrary transition duration depending on the parameters
available on transition start (or during tweener generation).

The same applies to transition.ease: it is not needed until the first
tick, therefore it seems reasonable to read it after tweener generation.
Merge remote-tracking branch 'origin/transition-duration' into 3.5