use trust-dns for all DNS queries
Previously we were only using trust-dns for resolving SRV records in server discovery, and then for resolving the hostname from the SRV record target if one exists. With the previous behavior, admins need to ensure that both their system resolver and trust-dns are working correctly in order for outgoing traffic to work reliably. This can be confusing to debug, because it's not obvious to the admin if or when each resolver are being used. Now, everything goes through trust-dns and outgoing federation DNS should fail/succeed more predictably.
I also expect some performance improvement from having an in-process DNS cache, but haven't taken measurements yet.
I've tested this on a local dev server, but not on a server connected to the public matrix network. I'd like to test it on computer.surgery before merging.