Update documentation
Add new RBL type TRUST

It's like ACCEPT, but also bypasses MAX_FAILED_RCPTS and
WRITE_BEFORE_BANNER.
Rework inbound TLS

Rename _start_tls() and _post_tls(). It's Better™ to avoid giving
things names with leading underscores. In addition, _post_tls was
entirely dedicated to SASL initialisation.

Use tls_client_cert for cert handling.

Rationalise handling of errors during STARTTLS, instead of ignoring
all of them.

Relatedly, we shouldn't write a banner after failed STARTTLS. As I was
trying to deal with consuming this in smtp.c I realised that there's
no good way for a client to know that we wrote a failure banner. They
shouldn't expect one, since the SSL library is the arbiter of success
for the negotiation and we already responded to the STARTTLS command
itself. I suspect that the code was originally written for SMTPS and
generalised for STARTTLS.

Move SSL_CTX initialisation out of start_tls(). It's a simple function
call, and for STARTTLS it should be done as a separate step so we can
tell the client the correct thing.

Move "TLS established" logging into start_tls(). This should be done
always.
snet_starttls failure is only fatal if TLS is required

The connection might still be usable, so fall through to resending EHLO
and using the result of that to determine whether connection succeeded.
Log "TLS established" even when cert verification fails