Don't access socket.io outside of Connection
Refactor CollabClient#dispatchForeignEdit and fix a bug in the transform flow
Simplify server-side transformation flow
If no server option is specified, use the current hostname and port