Make getMultipleRecipientServiceAddress more robust

to avoid

feature-not-implemented
	at org.jivesoftware.smack.PacketCollector.nextResultOrThrow(PacketCollector.java:182)
	at org.jivesoftware.smack.PacketCollector.nextResultOrThrow(PacketCollector.java:161)
	at org.jivesoftware.smackx.disco.ServiceDiscoveryManager.discoverItems(ServiceDiscoveryManager.java:573)
	at org.jivesoftware.smackx.address.MultipleRecipientManager.getMultipleRecipienServiceAddress(MultipleRecipientManager.java:310)
 	at org.jivesoftware.smackx.address.MultipleRecipientManager.send$7a184d34(MultipleRecipientManager.java:82)

for e.g. Google Apps XMPP services.

This is not to be merged in master/4.1 branch as it already contains a
similar fix.
Fix extensions/intro.html filetransfer link
Add Enable/Disable Carbon IQs
Add StanzaIdTest
Make Bookmarks.toXML() return valid XML again

Fixes SMACK-594
Generify Packet class returned by PackageCollector everywhere

This will help to get rid of repetitive class casts, and make
PacketCollector api more inline with itself (since some methods
are already generic return methods).
Enable more 'checkstyle' checks

AvoidStarImport
IllegalImport
RedundantImport
UpperEll
ArrayTypeStyle
GenericWhitespace
EmptyStatement
PackageDelcaration
Fix faulty string comparison in SubscriptionProvider

'!=' tests for reference inequality, must use '!String.equals(String)'
instead.
Add an API to send and wait async for a response

SMACK-595

Also remove the unused AbstractXMPPConnection.getPacketListeners()
method.
Convert html documentation to markdown
Smack 4.0.3
Smack 4.0.4-SNAPSHOT
Merge branch '4.0'

Conflicts:
	build.gradle
	documentation/connections.html
	documentation/debugging.html
	documentation/extensions/filetransfer.html
	documentation/extensions/rosterexchange.html
	documentation/gettingstarted.html
	documentation/index.html
	documentation/legacy/messageevents.html
	smack-extensions/src/main/java/org/jivesoftware/smackx/address/MultipleRecipientManager.java
Updated support for HTTP over XMPP (XEP-0332)

Updated Base64BinaryChunk packet and provider to support latest
version of specification (0.3):
- added support for new nr attribute.
SLF4J Smack Debugging Logger
Wait for Socks5TestProxy initialization

to prevent

org.jivesoftware.smackx.bytestreams.socks5.Socks5ClientForInitiatorTest
  > shouldSuccessfullyEstablishConnectionAndActivateSocks5Proxy
    FAILED
    java.lang.NullPointerException at Socks5ClientForInitiatorTest.java:292
Add SASL PLAIN implementation to smack-sasl-provided
Create org.jivesoftware.smack.rosterstore package

and move RosterStore and DirectoryRosterStore into it.
SmackDebugger initialization moved to dedicated factory.

You can set your custom debugger class as before, by using clear api
method ReflectionDebuggerFactory.setDebuggerClass, or you can set custom
debugger factory using SmackConfiguration.setDebuggerFactory if it's not
enough flexible for your needs
Load roster before sending the initial presence

SMACK-596