Support DnD on mobile

Description

dojo/dnd depends on mouseover/mouseout events. Although there are no touchover/touchout events corresponding to mouseover/mouseout, they can be simulated by monitoring touchmove and using document.elementFromPoint()

Support dijit/Tree DnD on mobile, and support touch.over, touch.out, touch.enter, and touch.leave synthetic events from dojo/touch module. Also fixed touch.move to behave like mousemove.

I refactored the touch.over/touch.out code to work by firing synthetic events when it that the user drags over a different node than before.

About touch.move: Previously, on(node, touch.move, func) on mobile would only trigger func if the user started their drag inside of the specified node. This did not match the behavior of on(node, touch.move, fun) on desktop, which was to fire events whenever the mouse was moved over the specified node, regardless of where the mouse movement started. DnD at least was depending on the onmousemove-like behavior.