INT-3463: Add `encode-uri` to ws:outbound-gateway

JIRA: https://jira.spring.io/browse/INT-3463
INT-3449: TCP: `read-delay` for XML Configuration

JIRA: https://jira.spring.io/browse/INT-3449

Doc Polishing
INT-3447: HTTP-inbound: `status-code-expression`

JIRA: https://jira.spring.io/browse/INT-3447

Polishing
INT-3462: Polishing (s)ftp XSD

JIRA: https://jira.spring.io/browse/INT-3462
INT-3435: Make `JmsChannelFB` more friendly

JIRA: https://jira.spring.io/browse/INT-3435
Undo "INT-3435: Make `JmsChannelFB` more friendly"

This reverts commit 04131c2d0b933c1a90b9f27285381662b1b31fc9.
INT-3435: Make `JmsChannelFB` More Friendly

JIRA: https://jira.spring.io/browse/INT-3435

INT-3435: Polishing according test failures

https://build.spring.io/browse/INT-B41-29
INT-3448: Add `@Async` test for `@Gateway`

JIRA: https://jira.spring.io/browse/INT-3448

INT-3448: Addressing PR comments

Late Resolution of @Publisher.defaultChannel

Early resolution of the publisher default channel caused
`@ Configuration` factory beans to be instantiated before
Spring Integration bean post processors had been registered.

Use the channel name instead of channel reference and resolve
it when processing the first publish.

Merge branch 'INT-3448' of https://github.com/garyrussell/spring-integration into INT-3448

Conflicts:
	spring-integration-core/src/test/java/org/springframework/integration/configuration/EnableIntegrationTests.java

INT-3448: Polishing
INT-3434: AMQP Don't Declare Queue if Supplied

JIRA: https://jira.spring.io/browse/INT-3434

Previously `PointToPointSubscribableAmqpChannel` declared Queue always.
Change the logic to use `admin.declareQueue` only if `queueName` isn't specified.
In addition it is redundant to get deal with entire `Queue` object - just use the `queueName` for the `SimpleMessageListenerContainer`

Polishing

Declare queue the old way if not already present in broker,
even if the name is supplied.
INT-3469 MQTT - Set Callback Before Subscribing

JIRA: https://jira.spring.io/browse/INT-3469

Previously, the callback was set immediately after
subscribing which caused a small possibility of
message loss.

Set the callback before subscribing.
INT-3437 MQTT - Support Cluster Connection

JIRA: https://jira.spring.io/browse/INT-3437

Note: Tests are still ignored due to hung connection
on close problem.

INT-3437 Polishing - PR Comments
Enable RabbitMQ MQTT Plugin on Travis
INT-3468 MQTT Async Client

JIRA: https://jira.spring.io/browse/INT-3468

Provide an option to not block when sending and emit
events for sends and delivery confirmations.

Also use the async client for the inbound adapter; while
it doesn't make any performance difference, it does
allow us to timeout the disconnect, which we have seen
to cause hangs on the CI servers.

INT-3468 Polishing - Use Events; Add Docs

INT-3468 Doc Polishing

INT-3468 More Polishing - PR Comments

- Only emit delivered event if async
- Add clientId and a new instance counter to events

INT-3468 Polishing

- Pull client instance up to the abstract class and remove references to the Paho implementation from the events
- Improve tests to include a second client

INT-3468 Fix Test Case

Incorrect classname meant the default location for the application
context config was not found on case-sensitive file systems.

Also, don't auto-start the adapters in the context, in case
the broker is not running.

INT-3468: Polishing

INT-3468 Fix Package Tangle; Add 'async-events'

Add an option (default false) to emit events when async is true.
INT-3467 MQTT Modify Subscribed Topics at Runtime

JIRA: https://jira.spring.io/browse/INT-3467

Add methods and managed operations to the inbound
channel adapter to allow the subscribed topics to be
changed at runtime, programmatically, or using a
control-bus.
INT-3470: SF 4.1 Compatibility #2

JIRA: https://jira.spring.io/browse/INT-3470

* Apply the last `ChannelInterceptor` changes - just `extends ChannelInterceptorAdapter`
* Change some tests to check content according to the new changes to the `GenericMessage#toString()`

**Cherry-pick to 4.0.x**
INT-3473: Set Inactive `TcpNioFactory` Before Stop

JIRA: https://jira.spring.io/browse/INT-3473

A simple fix to prevent `Selector closed` error loging message on `TcpNioServerConnectionFactory#stop()`

Polishing
INT-651: Add `Iterator` Support for `Splitter`

JIRA: https://jira.spring.io/browse/INT-651

INT-651: Polishing according PR comments

INT-651: Polishing #2

Doc Polishing