React prototype

This is a branch that creates a view with React components. The App component contains an AST editor and a Graph component. A Graph component receives a dummy model (a simple wrapper around an AST) and renders a set of Node components. A Node component is a rectangle of a constant size and a given position. Dragging a Node element changes the node's position in the model. That change causes the view to re-render from the App component down.
I can see having HTML classes grabbable, grabbed, and draggable. I'm not sure how all-scroll crept back in there. It's not supposed to be the same cursor multiple times. Let me find out when that changed.