Process all XML namespaces in PubSub ItemProvider

Fixes SMACK-601
Make PacketCollector handle InterruptedException

Fixes SMACK-602
Make XMPPError.Condition.equals null-safe

also make Condition implement CharSequence.

SMACK-603
Add support for presence probes
Presence class cleanup
Remove xmlns field from Packet

Stanzas do not have a xmlns attribute in their top level element.
Add XmlLangStanza, to share the language field

between Message and Presence.
Create smack.util.stringencoder for Base64, Base32,…

Use Android's Base64 implementation when on Android, otherwise, when on
Java7, use the existing one.
Add support for multiple status codes to MUCUser

Fixes SMACK-604
Use switch/case in MUCUserProvider
Add info about open_chat to README.md
Split SmackConfiguration into Configuration and Initalization

also add SmackConfiguration.addDisabledSmackClass()
Smack 4.0.4
Merge branch '4.0'

Conflicts:
	build.gradle
	smack-core/src/main/java/org/jivesoftware/smack/PacketCollector.java
	smack-core/src/main/java/org/jivesoftware/smack/packet/XMPPError.java
	smack-core/src/main/java/org/jivesoftware/smack/util/PacketParserUtils.java
	smack-core/src/main/java/org/jivesoftware/smack/util/StringUtils.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/ItemProvider.java
Use NO_WRAP/DONT_BREAK_LINES when doing Base64 encoding