Switch to websockets away from long polling

Long polling was the wrong choice. Too hard to parse out responses on
the server side and generally a bit gross.
Try to figure out why tests pass locally but not on Travis