Initial rough dialback support

* [x] <del>Code is rough</del> Greatly reduced oddness by `Node` module  and finding stream by ID.
* [x] <del>Storing secret probably in the wrong way</del> Finding stream by ID now seems sensible.
* [ ] No tests
* [ ] Stop offering SASL external if cert invalid
* [ ] Rebase into a clean commit
* [ ] No cluster support (Only if upstream interested?)
* [ ] Investigate also adding Bidi (XEP-0288) support  (Only if upstream interested?)
Yes, its 2.2.2, 2.1.2 is the receiving servers perspective of this. Here we're contacted by the receiving server as authoritative server and verify the initiating servers (which we are too in this case!) key. The db:result is outbound communication from the receiving server to the initiating server whether it successfully validated the connection and basically purely informational so that the initiating server can log or whatever why its connection was rejected.