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.
For convenience, I'll post my comment from above here too:
I'd prefer to avoid using the IPython global namespace as much as possible, but I wouldn't object strongly if you think I should be populating it with new things.