restore websocket_url configurable

allows ws to be handled via separate proxies, as appears to be the case on OpenShift and some other hosting services.

closes #6001
I think that the `ws_url` should be passed as an argument to the constructor so that `kernel.js` doesn't have to pull body data. It would be nice if the parsing of the body data could be done at the top/application level and then passed down to children classes, like we do in IPython.