Simplify `openStream' and `session'; allow for SockAddr; validate IP

`openStream' and `session' now takes a `HostName'. If the hostname is
an IP adress, we connect to it using the default XMPP port. If it's a
hostname, we perform the SRV lookup (or fallback on A/AAAA lookups and
the default XMPP port).

This patch allows for the use of a socket and socket address pair in
the settings, giving advanced users additionally flexibility. This
field can also be used by users that want to use a non-standard port
in combination with a) a misconfigured XMPP domain name (one without
SRV records), or b) connection by IP.

The "manual" A(AAA) lookups have been kept in order to allow the
Pontarius XMPP client to attempt to connect to multiple IP addresses.
Rename main module and add README/LICENSE update for EchoClient
Sasl.hs: Extend logging
Make legacy sesion bind optional and disabled by default
Stream.hs: Extend logging
TLS.hs: Extend logging
Remove diagnostic information moved to the logging system
Add `SessionConfiguration' object
Add connection closed handler to `SessionConfiguration' object
Add stanza identifier generator to the `SessionConfiguration' object
Add TLS behaviour and settings to the `StreamConfiguration' object
Change Cabal `Homepage' to GitHub page
Concurrent.hs: Respect specified TLS behaviour
Rename fromText(s) to jidFromText(s)
Minor documentation enhancements
Rename README to README.md, and extend it with a minor tutorial
Rename LICENSE to LICENSE.md, convert its content to Markdown format
Remove IM module dependency for EchoClient; update tutorial
pontarius-xmpp.cabal: Hide modules, update version numbers, etc