client: add 'close' event
client: throw on no auth methods
Client: allow useAuth() before actual connect()
Server: fix return values for instance methods
Server: ensure a connection is only handled once
lib: pause() before unshift() extra data