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?)
forgot to remove the `state` definition at line 301?