fix(proxy): handle proxied socket.io websocket transport upgrade

Fixes websocket upgrade handling for proxied routes.
This was motivated by long (10s) default timeouts when socket.io
attempts to use websockets and fails to perform the upgrade.
Merge pull request #815 from Demeterr/fix-websocket-proxy-better

fix(proxy): handle proxied socket.io websocket transport upgrade