Use String(String,String) constructor in SmackConfiguration

String(String, Charset) is not available on all platforms, as it's only
provided by Android on API level 9 or higher.
Reworked Smack initialization

Move extension relevant configuration options from SmackConfiguration to
the extension. Introduced disabledSmackClasses that can be configured
via a system property or configuration file.
Send request after the PacketCollector was setup

This bug was introduced with 7bd7b3d24. Thanks to Lars Noschinski for
discovering it.
Properly escape PubSub item's text (SMACK-546)
Make JUL Loggers final (SMACK-536)
Add automatically scheduled pings in PingManager

replaces keep-alive functionality. SMACK-537
Remove non-SASL authentication code (SMACK-446)
Created 'tcp' subproject for TCPConnection

Renamed XMPPConnection to TCPConnection, since the other connection type
is also called BOSHConnection.
PingManager should notify PingFailedListeners only once

Fixes SMACK-548
Use correct namespace for MUC.getAdmins()

Fixes (again) SMACK-371
Create accurate filter for matching on from address (SMACK-71)

Smack contains two PacketFilters to filter on the from address.
FromContainsFilter simply does a substring match, which is problematic
as explained in SMACK-71. FromMatchesFilter partially fixes this
weakness, but it still uses String#startsWith to filter on bare
addresses. For example, when setup to match all JIDs with bare JID
"foo@example.co", it will still match "foo@example.com".

This commit changes FromMatchesFilter to test equality with the bare
from instead of startsWith with the full from.

Moreover, we convert all uses of FromContainsFilter to FromMatchesFilter
and remove FromContainsFilter. Additionally, the unused ToContainsFilter
(which as the same weaknesses) is removed, too.
Add and use IQReplyFilter (SMACK-533)

In the absence of checks on the from address, it is possible for other
clients to fake an answer to an IQ request.

This commit adds an IQReplyFilter, which drops all packets which are not
a valid reply to an IQ request. In particular, it checks for packet id,
from address and packet type.

Most(?) places waiting for a reply to an IQ request are converted to use
the IQReplyFilter.

For a discussion of the issues, see the thread "Spoofing of iq ids and
misbehaving servers" from 2014-01 on the jdev@jabber.org mailing list
and following discussion in February and March.
Process only requested roster results (SMACK-538)

Prior to this change, Smack processes each RosterPacket (which is not of
type IQ.Type.RESULT) as a roster result.

Any other client on the XMPP network can send such a packet (not only
our server). This allows a malicious party to overwrite our Roster.

This patch changes smack so that a RosterPacket is discarded if it is
not a reply to a roster request.
Unify AndFilter and OrFilter

AndFilter and OrFilter are dual; there is no reason why they should have
differing interfaces.
Remove remainders of non-SASL authentication (SMACK-446)
Code cleanup in SASLMechanism

- typos
- deprecated methods
- whitespace fixes
s/XMPPConnection/TCPConnection
Move Jingle packet and provider under smackx.jingle

The Jingle integration-tests where also accidentally not within the
smackx package.
Migrated Roster Item Exchange to new manager design

The finalize approach was flawed anyway, it would have never been
called. Because if the packetListener was still referenced from a
connection, and the connection was still strong referenced, then a
strong reference from a gc root would still exists to the manager, which
would prevent it from being gc'ed and finalized being called.
Move Roster Item Exchange code to legacy project

XEP-93 has been deprecated and superseded by XEP-144.