Fix #1850 - multiple touchstart targets.
Don’t store temporary variables on tree nodes.

Rather than creating a temporary _tree hash on the tree nodes to store temporary
variables needed to compute the tree layout, the tree is wrapped. This
eliminates the risk of a namespace collision, and eliminates the need to
subsequently delete temporary variables. (They will be garbage collected.)
Non-recursive tree layout.
Non-recursive hierarchy layout.
Abbreviate internal variables.
Make scaling non-recursive.
Merge branch 'fix-multiple-zoom-touchstart' into 3.4.7
Merge branch 'non-recursive-tree' into 3.4.7
Merge branch '3.4.7'