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.
My opinion is no, since it is only two arguments, even though I do realize that it sucks to have a `kernel` instance require a `notebook` instance.  Making it a keyword arg would just mask this problem.  I do think it's only required for the widgetmanager.