use Nocrypto instead of Cryptokit; use random from Nocrypto as well
handle realm as defined in RFC2831:
 - if the server provided one, use it
 - otherwise use the empty string
use a single integer as ID
provide digest_uri instead of servername to Sasl.sasl_digest_response
move sasl_plain to Sasl
use Sasl.sasl_plain for PLAIN authentication
use cstruct and nocrypto instead of cryptokit; tls instead of lwt.ssl
regenerate
use tls.lwt instead of lwt.ssl
more debug output, send a presence before looping