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
Make Bookmarks.toXML() return valid XML again

Fixes SMACK-594
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
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
SmackConfiguration.setDebugger, or you can set custom debugger factory
using SmackConfiguration.setDebuggerFactory