Break GCT generation out into xmodule
Add limited multi-file support to JS
Add basic dialect support to JS