use SockJS instead of pure WebSockets

Should work in more environments than plain websockets.

Still some work to do, checking out authentication, etc., but the basics definitely work.

Third-party code added:  sockjs-tornado (in IPython.external), sockjs-client (in static/sockjs).