New tree controller structure that uses a controller for each node in addition to a controller for each list of nodes (#55768220)

Use of the tree controller hasn't changed much though the internals are radically altered. The major difference is that list_view in the controller options is now split into header_view, show_view, and footer_view.  show_views do not iterate over lists; they are called once per instance.