Fix #1850 - multiple touchstart targets.
removing .js extension from the 'main' property
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 pull request #1873 from mserinjane/master

removing .js extension from the 'main' property
Add Finnish locale
Merge branch 'fix-multiple-zoom-touchstart' into 3.4.7
Merge branch 'non-recursive-tree' into 3.4.7
Merge branch '3.4.7'
Fix hierarchy.revalue.

Post-order traversal alone causes all parent values to be reset to zero
*after* accumulating child values.

An additional pre-order traversal resets all parent values to zero
first, and the post-order traversal can then accumulate child values in
their parents.

This only affects sticky treemaps.
Style tweak.
Merge branch 'fix-hierarchy-revalue'
Add spm support