Fix issue with drag suppression for multitouch.

Due to the touchend listener being overwritten for every touchstart, two
touchstart events would result in d3_event_dragSuppress being called
twice, with only a single drag restore, meaning that a document's
user-select style could be lost.

This restructuring means that the first touchstart creates the closures
for subsequent touchstart, touchmove and touchend events.  A nice
side-benefit is that fewer closures are created for multitouch.