Split "Show" and "Tree" into separate directories.

They're still connected -- Show just uses Tree's internal classes -- but
this is a first step in setting up a bridge.

[refs #73894496]
Add VizController that loads and unloads vizs.

[refs #73894496]
Pass DocumentSet and State to VizApps ... for now
Split TreeApp from ShowApp. Lots of bugs remain.
Fix editing node name.

This involves an icky hack: giving the ShowApp access to the TreeApp's
internal OnDemandTree.
Show Jobs as Vizs. [refs #64439572]

This still isn't perfect. In particular, the URLs can break.
Put Show page back on DocumentSetController

[refs #64439572]
Allow Viz-specific URLs, handled in JavaScript.

[refs #64439572]
Always switch to the newest Viz [refs #64439572]
Transition from Job to Viz nicely [refs #64439572]
Translate job progress
Order vizs chronologically. [finishes #74147248]
Revamp KeyboardController so vizs can use it.

[refs #64439572]
Re-wire node-counts stuff

[finishes #64439572]
[finishes #73894496]
@sandbox.restore()
Remove a console.log()
Remove fine-grained logging.

This code took a lot of effort to maintain, and we haven't been gaining
anything from it for quite a while.

I left the database alone for now. We need a four-step process:

1. Stop writing to the table. (this commit)
2. Deploy
3. Back up the table and wipe it.
4. Stop deleting from the table, and evolve to drop the table away.
d'oh. Respond on first click in VizTabs
Recluster happens automatically now; adjust test