Terminal emulator in the notebook

To try this out: `pip install terminado`, launch the notebook server, and go to [http://localhost:8888/terminals/new](http://localhost:8888/terminals/new) (or replace `new` with any alphanumeric name).

You have an arbitrary number of named terminals. Tabs open to the same URL share a terminal - this isn't always flawlessly visually, especially if you open a new tab with something like vim already running, because it just sends the output, as it arrives, to all connected tabs, but it works pretty well in my informal tests.

If it can't load terminado, e.g. because you're on Windows, these handlers don't get added at all.

For now, terminals are only shut down if you quit your shell inside them. It should be easy, however, to build a REST API which can kill terminal sessions, and a UI on top of that.

I've copied the relatively minimal JS from terminado into our JS tree, because that seemed simpler than working out how to handle serving JS from another Python package. The big chunk of JS code, term.js, is added to the components submodule in a branch.

![nb terminal screenshot](https://cloud.githubusercontent.com/assets/327925/4513630/65aee5e8-4b50-11e4-86c5-3349c15ffe10.png)

At the level of terminals, the standard streams are not separate - they both come in over one file descriptor (in fact, stdin uses the same fd too). In fact, I don't think it's exactly technically correct to call it stdout, because that's an attribute of a process, not a terminal. But I left the naming as I found it.