Begin separating out node graph logic from editor logic.
Separate out a bunch of layout details and move them to editor.h
Transfer more display logic out of graph.h
Move node type creation logic from graph.h to graph.cpp, drastically simplifying the interface to this module.
Fix group selection.
Separate out compilation from execution.
Separate program definition out into its own file, event.cpp/event.h.
Formalize program structure a little bit.
Allow declaration of pure functions.
Merge branch 'graph'