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
Remove Unnecessary Deprecation Suppression

Deprecated API usage has been removed from the affected modules.
INT-3238:Delete the FTP Temporary File (get)

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

If a get operation fails in the outbound gateway,
clean up (remove) the temporary file if present.

Test Polishing
INT-3475: `Integer.MAX_VALUE / 2` Phase for MDEs

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

Change the phase for `SourcePollingChannelAdapterFactoryBean`, `AbstractPollingEndpoint`, `MessageProducerSupport`, `JmsMessageDrivenEndpoint`
to the `Integer.MAX_VALUE / 2`
INT-3452 Http Response Documentation

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

Document that `expected-response-type` is required when a response
contains a body.
INT-3420 Aggregator expire-groups-upon-timeout

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

Add option to allow the empty group to remain after timeout
so late arriving messages can be discarded.

INT-3420 Add Callout Hyperlinks

The aggregator configuration documentation had hyperlinks
from the attribute descriptions to the attribute in the
XML, but not vice-versa. For a large number of attributes
such as this, bi-directional hyperlinks are useful.

INT-3420 Doc Polishing
INT-3465:Content Enricher Improvements

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

Add support for adding/removing individual recipients to the RecipientListRouter

Modify documentation in what's new and spring-integration-4.1.xsd

Polishing

`AbstractRemoteFileOutboundGateway`: close `outputStream` before `file.delete()` to release exclusive file-lock
INT-2371 DefaultHeaderChannelRegistry Improvements

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

- Make final fields protected so they are available to subclasses
- Add property `removeOnGet` allowing the map entry to be removed immediately when it is used
- Add `time-to-live-expression` allowing override of the reaper delay

Polishing

Conflicts:
	src/reference/docbook/whats-new.xml
INT-3474 Suppress DEBUG StackTrace in MIMHelper

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

When the MethodInvokingMessageHandler skips ineligible methods while
searching it emits a stack trace under DEBUG logging. This is not
needed, a simple log message is enough to convey the information.

Some POJOs gain ineligible methods when wrapped in a proxy so this
is no fault of the developer.

Other reasons for skipping methods (improperly set annotations etc)
continue to emit a stack trace.

INT-3474: Polishing

Rethrow `IneligibleMethodException` as `IllegalArgumentException` in case of a single `method` for processor
INT-3464 Exceptions and AcceptOnceFileListFilter

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

Previously, if an IO exeption occurred while synchronizing
files, and an AcceptOnceFileListFilter is being used, files that were
not transferred would not be fetched next time.

Add strategy `ReversibleFileListFilter` that can rollback previously
accepted files.

Implement this interface on `AcceptOnceFileListFilter` and
`AbstractPersistentAcceptOnceFileListFilter`.

Add test cases.

Polishing
INT-3464 Fix Test Filenames
INT-3104:Add auto-start attribute to Gemfire Adapters

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

Add phase and remove unnecessary auto-starup

INT-3104: Remove reduntant code and format

Polishing and fixing parser tests
INT-3480: public DefaultPahoMC.setPayloadAsBytes

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

In docs, it s said:
```
The DefaultPahoMessageConverter can be configured to return the raw byte[] in the payload by declaring it as a <bean/> and setting the payloadAsBytes property.
```
http://docs.spring.io/spring-integration/docs/4.0.0.M3/reference/html/mqtt.html
INT-3483: Fix `AbstractCorrelatingMH` deadlock

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

**Cherry-pick to 4.0.x & 3.0.x**
INT-3420 Aggregator Expiry Doc Clarification

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

New documentation implied that if `expire-groups-upon-timeout`
was true, the group would NOT be removed if the group
was released by the release strategy in `forceComplete()`.

"...if it does so, then expiration is controlled by..."

In fact, `afterRelease()` (which is where `expire-groups-upon-completion`
is only invoked if `expire-groups-upon-timeout` is false.

Clarify that if the release strategy releases the group during timeout
then the group will always be expired if `expire-groups-upon-timeout` is
true (default).
Add Sftp Server Tests

Using Apache Mina
SftpServerTests: BASE64Decoder -> apache..Base64