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.
* passing test: responds to ping requests
* `mc.ping` - ping a server for info
* `createServer`: `options.timeout` -> `options.checkTimeoutInterval`
* `Client` emits `connect` event
* test passing: kicks clients that do not log in
* index exports `Client` and `Server`
* `createServer`: `options.keepAliveInterval` -> `options.kickTimeout`
* `Client` event `end` includes `reason` argument
- `LoginTimeout`
- `KeepAliveTimeout`
- `ServerShutdown`
* `createClient`: Set `options.keepAlive` to `false` to disable sending
keep alive packets
* `Client`: `options.isServer` defaults to `false`.
* 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()