This change breaks backwards compatibility.
`createClient` no longer takes an `email` argument. Instead, the
`username` argument is used to authenticate and determine the
case correct username.
There is a special case if you leave out the `password` argument.
In this case, `username` is used to connect directly to the server,
and you may get kicked if the server is in online mode.
* add passing test for "starts listening"
* server.socket -> server.socketServer
* add client.id which can be used as entity id
* add server.clients which is {clientId: client}
* update server examples
* server emits 'close' event, not 'end' event
* add server.close()