When binding a resource, allow the calling code to request a specific resource string be used.
Add functions for retrieving parts of a JID as strings.
In TLS mode, check for pending data before calling ``tlsRecv``. If no data is pending, wait for some first. By waiting for input in Haskell code, SIGINT will work again.
Add basic support for the ``message`` and ``presence`` stanza types, which simplify the construction of XML trees.
Change JIDs to be unformatted when shown -- turns out using show for formatting was a dumb idea, because it would typecheck even if the value was no longer a JID.
Export the JID constructor.
Extracted incremental XML parsing to a separate library.
Cleaned unused and duplicate imports, and added some type declarations.
In ``clientBind``, parse and return the JID returned from the server.
Add type signatures for ``mkAttr`` and ``mkQName``, and fixed a typo in ``mkQName``.
Moved utility functions into Util module.
Cleaned up clientBind a bit, and allow put/getTree operations on authenticated clients.
When building a tree from SAX events, include element attributes.
Add constructors for the Bind and Session features.
Re-open the stream after authentication.
Use ``getTree`` to parse the <stream:features> element.
Allow PLAIN authentication.
Started work on authentication support.