Add the core functionality required to resolve Human Readable Names (Blinded Paths, Human Readable Names, Bolt12, Offer)

https://github.com/lightningdevkit/rust-lightning/pull/3179

Host: vincenzopalazzo  -  PR author: TheBlueMatt

Notes

Question

  1. Did you review PR #3179? Is it a Concept ACK, approach ACK, tested ACK, or NACK?
  2. Did you review the blip-0032?
  3. What kind of onion messages does blip-0032 define?
  4. What is DNSSEC? Why is it considered secure?
    • See https://www.icann.org/resources/pages/dnssec-what-is-it-why-important-2019-03-05-en/
  5. What does the struct OMNameResolver do in lightning/src/onion_message/dns_resolution.rs?
  6. What does the struct DNSResolverMessageHandler do, and what is another example of MessageHandler in LDK?