Add support for Serverless Messaging (XEP-174)

Let's use this pull request as a clean slate for evaluating XEP-174 Support. This pull request represents a baseline working implementation of link local chat.

The main unanswered question is how to handle mDNS service name (e.g david@example) changes. Perhaps we can interpret those changes as a signing-off of the old service name and a signing-on of the new service name in order to further clean up the code.