js: totally redo architecture -- try something mvc-ish
 - views that listen to user events
 - a "model" that controls all state;
   the user views then call methods in the model
 - output views that listen to the model for changes

so can remove `Language` junk class, it's not needed
since the model presents the "service layer"

also, separate operators into four tables based on fixity,
since they need different schema and thus it doesn't make
sense to put them together
produce built-in language operators with a function so that there can be multiple non-conflicting copies (in case one is modified, it's not going to be global state)