Fix Bytestream.getChildElementXML returning invalid XML
Improve XmlStringBuilder usage in Bytestream
Improve Socks5 Bytestreams

- determine all local IPv4 and IPv6 addresses
- prevent loopback addresses from appearing as streamhost

Some unit tests where changed because they assumed that a host only has
one local address. But nowadays hosts often have more, at least because
they are IPv4 and IPv6 multi-homed.
Cleanup Bytestream and Streamhost

remove unnecessary setPort() setter.
Also log the exception in parsePresence()

when parsing packet extensions.
Renamed smack-jingle to smack-jingle-old

Also renamed package name from

org.jivesoftware.smackx.jingle

to

org.jivesoftware.smackx.jingleold
Add getLastStanzaReceived() to XMPPConnection

also remove faulty PongFilter from PingManager. It never matched any
stanzas, since a Pong is just a plain result IQ that is not qualified by
any XMPP Ping namespace.

Fixes SMACK-597
Fix PingServerRunnable scheduling

should be nextPingIn and not pingInterval.
Make the next server ping code easier to read
Updated providers.md: s/.getInstance()//

As ProviderManager has now only static methods
Make parseElementText handle empty string elements

ie. elements which only content is the empty string, for example
<body></body>.

Fixes SMACK-598
Merge branch '4.0'
Add '::1' to the loopbackAddresses
Add maybeCheckForSnapshotDependencies to build.gradle

to check for Snapshot dependencies in release builds.
Fix typo in XmlStringBuilder, it's not an Angel

s/rightAngelBracket/rightAngleBracket/
Remove Pong class, add NAMESPACE to Ping

The Pong class was harmful, as people could try to use it with
PacketTypeFilter, which wouldn't work, a Pong is just a plain IQ result
without child XML.
Fix wrong boolean condition in async API

inverse boolean condition, correct is: "if packetListener has been
removed, then we received no response" and add check for
exceptionCallback being null.
Make AbstractDelayInformationProvider handle empty string as reason
Set jid to passed parameter, not null

Setting `jid` to `null` was probably not the intended behaviour of this constructor and means that the `IQReplyFilter` will later reject responses that it shouldn't, because the `AbstractXmppConnection` will automatically construct a JID based on the authenticated username.

In particular, this breaks attempting to connect to the PVP.net XMPP server.
MultiUserChat grant/revoke Admin must use #admin namepsace

SMACK-371