Improvements to capability negotiation

Add improvements to capability negotiation:
* Send all CAPs in one `CAP REQ` command
* Only request the `sasl` capability when `options.password` is given