Add tree.reel and fix content swaps in controller

This adds a tree component, which allows a template to be repeated and
indented depending on the state in the corresponding tree controller.
The tree view does not impose any UI for disclosure triangles or other
visualization than indentation.

Alternate means of visualizing depth are a matter for further
elaboration.

Previously, swapping the content of a tree controller would retain the
expanded and collapsed state of the previous tree.  This commit adds an
abstraction layer to the Tree Controller that allows it to have
independent view-model trees for each article of content, retained
loosely in a WeakMap so the tree controller does not implicitly leak if
old trees are discarded and new ones allocated.
Add junction hints to tree controller

Remove support for ui/tree.reel. A tree controller provides the bulk of
the work and can be applied to a plain repetition, or a list, or a flow
list.  We may consider putting a batteries-included tree view, specific
to each widget set.

-   Remove iteration type from tree controller.  The nodes serve as the
    iterations.
-   Depth is now established by a binding.
-   Position within the parent children is now established with a
    binding to an enumeration entry.
-   Add a SortedSet demo