dns.resolver.query treats hostnames as relative names if they don't end in a period

Relative hostnames have a fall-back lookup with the machine's hostname appended, which makes no sense. Add a period, e.g. "my.hostname.com" => "my.hostname.com.", to prevent that.

This caused false positive Spamhaus checks. Fixes #185.
Switch from SMTP+STARTTLS on port 587 to SMTPS on port 465

A good argument for using 465 is made at
https://www.agwa.name/blog/post/starttls_considered_harmful.

FastMail make a good case at
https://www.fastmail.fm/help/technical/ssltlsstarttls.html.
(https://www.fastmail.fm/help/technical/servernamesandports.html states that
587 is available but they do seem to recommend 465).

Gmail uses 465 too.

This shouldn't stop opportunistic TLS being used for incoming mail because
STARTTLS remains available on port 25 - which is what would have been used
before too.

Backward compatibility with clients that were setup to use 587 on existing
installations is maintained because we only change the setup to enable 465
 - we don't disable any existing SMTP+STARTTLS configuration.
Add support for TLS authenticated "sibling host" relayers

The use case for this is e.g. a www server that is a separate machine to
the mailinabox, but which needs to send emails to the internet - for example it
may be running Wordpress or some other web app and need to notify arbitrary
users of comments etc.

In such cases, as the www administrator is using mailinabox, they're almost
certainly better off letting mailinabox do as much as possible as far as email
is concerned (as opposed to having the www sibling host do full delivery
itself) - among other things this simplifies reasoning about DNS records.
Do not require admin as an alias for any domains, do require root for main host
Increase SPF and DMARC strictness