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.
So that assumes we only ever expect one websocket per background operation, is that indeed the case?

As in, can we always easily multiplex over websocket or is it possible we'll need more than one websocket?