Make Roster.hasValidSubscriptionType() static
Introduced unchangedEntries in Roster logic

If the connection has been reconnected, then we will receive entries
that have been unchanged since the last time we received a roster
result. Without this change, those entries ended up in 'toDelete' and
got deleted.

This change also inlines some roster methods.
Shutdown listenerExecutor to prevent the Thread from leaking

listenerExecutor needs to get shutdown once it is no longer required.

SMACK-567
Re-use executorService as listenerExecutor
Make XMPPConnection.schedule() protected

This method was never intended to be part of the public API. It's also
critical that the given Runnables complete within a reasonable
time frame so that they don't block following ones.
Don't throw an IOException if IBBStream got closed by the remote

Smack should not throw an IOException in case a stream got closed by
the remote peer and the user is trying to read() from the stream. This
commit fixes that, by making Smack return '-1' if the stream got
closed by the remote. An IOException will only be thrown if the user
tries to read from a stream that got already closed by *himself*.

SMACK-468
Smack 4.0.0-rc2
Smack 4.1.0-alpha1-SNAPSHOT
Update Maven repositories in README.md
Improve Entity Capabilities code

Most importantly, rename reload() method of persistent cache to
"DiscoverInfo lookup(String nodeVer)" and lazily load the data from the
persistent cache to the memory cache.
Make XMPPConnection an interface

create AbstractXMPPConnection.
Improve parsing. Add method for de-serializing Strings

Move some duplicate code from XMPP(TCP|BOSH)Connection to
PacketParserUtils. Remove TestUtils as the method now part of Smack's
public API in PacketParserUtils.
Remove schedule() from XMPPConnection interface

The idea that we abstract the scheduling of tasks on Android over this
method turned out to be unnecessary. schedule() was also not really part
of the *public* XMPPConnection API, so it's good that it's gone.
Make PacketReader and PacketWriter nested classes

of XMPPTCPConnection.
Add .travis.yml
Add FlexiblePacketTypeFilter

and make constructors of MessageTypeFilter and IQTypeFilter
private, because we now provide constants instead.
Smack 4.0.0-rc3-SNAPSHOT
Do not filter groupchat messages without body

for MessageListeners in MultiUserChat

SMACK-568
Refactor Message Event (XEP-22) code to current design
Improve TLS/SSL support

Add TLSUtils. Make it possible to set the enabled SSL/TLS protocols and
ciphers and provide sane error reporting.