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
INT-2634: Test for gateway's `Map` parameter

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

The Map entries with non-String keys are now skipped just with WARN message,
instead of `IllegalArgumentException` as it was before
INT-3200: SFTP: use `byte[]` for the PrivateKey

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

INT-3200: Remove reduntant test case

INT-3200: remove trailing space
Update CONTRIBUTING.md
Fix Occasional Reaper Expiry Test Failure

https://build.spring.io/browse/INT-MJATS41-32/

Also add a test for expiring a group within an aggregator.

Polishing
INT-3384: Rework JMS/XML Module XSD Enumerations

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

Polishing
Fix Timing in GemFire Delayer Reschedule Test

https://build.spring.io/browse/INT-MEIGHT-JOB1-166
INT-3412 (S)FTP Append, rmdir, Client Access

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

Initial commit - review only.

TODO:
- SFTP Tests
- Namespace/Adapter support for file append
- Docs

INT-3412 Polishing

- Addressed PR comments
- Completed SFTP implementation
- Added namespace/parser support for `FileExistsMode` (append, etc)
- Added SFTP Tests
- Created Embedded SFTP server for tests (similar to FTP)
- Converted tests that needed a real server to use the embedded server

INT-3412 Docs and Polish (PR Comments)