Don't render hidden nodes

Until now we rendered all nodes of the AST and simply hid them with CSS.
However, that is not performant for large ASTs. The advantage was that
we could maintain state for nodes. I.e. when a subtree was expanded, it
was still expanded when an ancestor node was toggled.

That's now not the case anymore, but instead when you click on a node
with the shift key pressed, the whole subtree gets expanded.
Add JSON view

You can now toggle between a tree and a JSON view. The JSON view allows
you to inspect and copy the AST as JSON.

In the future, you will be able to paste and edit an existing AST through the
JSON view.

This also improves performance when working with large scripts, by
properly using CoreMirror.