Require.js (WIP)

Opened so people can spy on me.  Please ignore random code snippets sitting in files they don't belong in (especially in notebook.js), I'll move them when I get to the correct file.
Calling super seems to not break anything.  I was just worried there would be a requirejs race condition where the base code would get called after the inheritor's code.