Exec websocket

Here's some commits that use websockets to do the shell instead of direct sockets. I've left the 'shell' command for now since it still does bash a bit better than exec. When I fix those, I'll delete the shell command.

Right now there is no muxing of stdout/stderr (I didn't see how to get it out of the pty library, although I didn't look very hard). I'll look into that as well.
Well, we have to invent our own wire protocol to multiplex, but it is fairly simple. The abstraction websockets exposes is basically just a series of messages, you can put whatever you want into them. (It distinguishes between "text" and "binary" types, but we're using all binary for this, and presumably that's all we'd use for migration too; so all that's left is to say that the first byte of every message says what stream it goes to, and we're done.)