Authoring

Adds widget compilation with *-code methods and authoring. Authoring uses CodeMirror for the editor and includes syntax highlighting and smart indentation.