Cleanly disconnect from the server with disconnect()

Sends connection.close, and waits for a connection.close-ok before
closing the socket.

connection.end() will still work for backwards compatibility by closing
the underlying socket, but is removed from the documentation.
best of both 248 and 295