Socket::Listen() called twice in unexpected request

Listen() should only be called once for a socket. A second call will throw an
exception. It gets called a second timewhen `shouldDisconnect` is true, throwing
an exception. Since there is no catch-clause, it crashes the server.

This makes it trivially easy to crash the server for unauthenticated users, even
by accident.
Merge pull request #426 from OttoAllmendinger/fix-doublelisten

Socket::Listen() called twice in unexpected request