Switching from XMPPFramework to libstrophe

This changes the underlying XMPP implementation from XMPPFramework to libstrophe.

XMPPFramework caused a lot of build problems, was difficult to implement, and would likely cause some rewrites soon since a lot of deprecated methods are likely to be removed.

libstrophe requires some C shenanigans and dealing with threading ourselves but should be more isolated, especially as that code is moved into other objects.