Upgrade TreeController

-   Add `initiallyExpanded` configuration property.

-   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.

-   Make insensitive to the order in which configuration properties are set.

-   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.