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?)
This is the state of the stream while we wait for verification, it's used to store the secret we send out in the previous state to be retrieved from the authoritative server in the verification step.