Upgrade TreeController

-   Add `initiallyExpanded` configuration property.

-   Add `allExpanded`, and `noneExpanded` bidirectional bindings.  This
    required an FRB upgrade to permit logic bindings.

-   As an alternative to simply rendering a tree with indentation depth,
    add support for drawing junctions at each indentation depth of each
    row of the tree.

-   Make the tree controller react properly to changes to the underlying
    content (tree model).  Produce a separate `TreeControllerNode`
    hierarchy (tree view-model) for each content root, so
    expanded/collapsed state is preserved independently for each content
    root.  Use a WeakMap so the TreeController only tracks the
    view-model for content that still exists.

    This is accomplished by making a thin TreeController wrapper class that
    tracks roots for each content and forwards its configuration properties
    (childrenPath, initiallyExpanded) to each root, and mirrors the current
    root's iterations array.

-   Remove distinction between a tree controller iteration and a tree
    controller node.  Tree controller nodes now serve as iterations.

-   JSDoc'd.
-   Judgement calls made on what is private and public.
Add TreeController blueprints
Rename to TreeControllerNode._controller

Since the controller property is an implantation detail,
adding a _ prefix
Merge pull request #1202 from kriskowal/tree