INT-3017: Redis Queue Adapters: Namespace Support

JIRA: https://jira.springsource.org/browse/INT-3017

* Add parsers tests and integration tests
* Polishing Redis XSD
* Fix `JmsMessageDrivenEndpointParser` `LifeCycle` attributes
* Catch `RedisSystemException` after `this.boundListOperations.rightPop`.
It maybe an exception about 'connection closed'.
If the `RedisQueueMessageDrivenEndpoint` is 'active' this exception is rethrown,
otherwise just logged under error category.
* Add Redis queue components docs

JIRA: https://jira.springsource.org/browse/INT-3019

INT-3017 Doc Polishing
INT-3017 Fix Typo
INT-3064 Message ID Generation

Use the SPR 4.0.0 Message ID Generation algorithm.

JIRA: https://jira.springsource.org/browse/INT-3064
INT-3154/INT-3137 JavaDoc Formatting

INT-3154 Use SPR Java7 stylesheet to put a box around `<pre class="code"/>`
code.

Update `<pre/>` tags to include class="code".

INT-3137 Remove NOTICE from `JdbcChannelMessageStore`.

JIRA: https://jira.springsource.org/browse/INT-3137
      https://jira.springsource.org/browse/INT-3154
INT-3167: Polishing Twitter Documentation

JIRA: https://jira.springsource.org/browse/INT-3167

Doc Polishing
INT-3177: Generic RedisTemplate for PublishingMH

JIRA: https://jira.springsource.org/browse/INT-3177

* Change `RedisPublishingMessageHandler.StringRedisTemplate` to `RedisTemplate<?, ?>`
* Don't provide `serializer` to the `template`
* Use `serializer` directly for values which are not `byte[]`
* Add `RedisAvailableTests#awaitContainerSubscribed` for tests to avoid race conditions
* Refactor some tests
* Add test for `byte[]` payload

INT-3177: Generic RedisInboundChannelAdapter

Port from Spring XD: allow for `RedisInboundChannelAdapter`
to receive from Redis any object, not only String

* Make `serializer` property 'resettable' to `null`
* Change `RedisInboundChannelAdapterParser` to allow to apply
empty value from `serializer` attribute
* Add parser test and test for `byte[]` messages

INT-3177: Polishing and documentation

JIRA: https://jira.springsource.org/browse/INT-3033

* Add `topic-expression` to `<int-redis:outbound-channel-adapter>`
* Add tests and docs

INT-3177: Deprecate `RedisPublishMH.defaultTopic`

* Make `topic` and `topic-expression` attributes as mutually exclusive
* Polishing Redis Topic Parsers
* Polishing tests and docs
* Default `serializer` for Redis Topic Adapters is `StringRedisSerializer` for backward compatibility

Polishing according PR's discussion

INT-3177 Doc Polishing
INT-3196: RedisQueueMDE: Add RecoveryInterval

Catch `RedisSystemException` in the `ListenerTask` and sleep current Thread
 with `recoveryInterval` if the Endpoint is `active` before the next `restart()`

JIRA: https://jira.springsource.org/browse/INT-3196

RedisConnFailure & RedisSys Exceptions recovery

Introduce `RedisIntegrationEvent`s

* Catch all `Exception`s on `this.boundListOperations.rightPop`
* Log them and send within `RedisExceptionEvent`
* Mark some fields with `volatile`
INT-3017 Redis TaskExecutor Changes

Don't wrap the TE in an EHTE if there is no BeanFactory.
INT-3198: Add 'recovery-interval' for redis-q-c-a

JIRA: https://jira.springsource.org/browse/INT-3198

* Expose `RedisQueueMessageDrivenEndpoint.recoveryInterval` to Namespace support
* Add parser's tests
* Rename parser test class
* Polishing for concurrency of`RedisQueueMessageDrivenEndpointTests#testInt3196Recovery` test
* Add documentation for 'recovery-interval' and Redis Events implementation

Doc Polishing

Add more delay because of unsolvable race condition in the Redis Subscription - see DATAREDIS-242
INT-2946: Add redis:i-c-a `topic-patterns` Attr.

JIRA: https://jira.springsource.org/browse/INT-2946

Polishing
INT-3100 Support Remote File Streaming (Inbound)

- Add readRaw and finalizeRaw methods to Session
- Add tests for SFTP and FTP

Allows retrieval of a remote file as a stream.

JIRA: https://jira.springsource.org/browse/INT-3100
INT-2421 Support 'container-class' on JMS MDCA

Convenience for configuring a custom listener container - avoids
having to transfer many attributes from the adapter to the
bean when switching to a custom implementation.

JIRA: https://jira.springsource.org/browse/INT-2421

INT-2421 Polishing - PR Comments

Also auto-create adapter channel if necessary.
INT-3047 SFTP Multiplex Over Single Connection

Enable the use of multiple JSch channels over a
single connection.

JIRA: https://jira.springsource.org/browse/INT-3047

INT-3047: Polishing locks logic

INT-3047 SFTP Reset Cache; Quiesce Shared Sessions

Support resetCache() on the CachingSessionFactory
- reset a shared JSch session so it is reestablished on next use
- immediately close idle sessions
- close in-use sessions as they are returned
- close the channel when an SftpSession is closed and a shared JSch is being used
- physically close a shared JSch session only when the last channel is closed

Polishing

Forgot to save the ftp.xml.

Change CachedSession.epoch to created.

INT-3047 Polishing - PR Comments

- Also add missing docs for `preserve-timestamp`

INT-3047 Polish - PR Comments

Also change epoch to nanoseconds and use a simple != comparison with the
epoch in which a session was created.
INT-2898 Add Persistent FileListFilters

- Abstract implementation
- Implementation for the file system
- Implementation for remote files ((S)FTP)

JIRA: https://jira.springsource.org/browse/INT-2898

INT-2889 Polishing

- Add (S)FTP test cases
- Docs
INT-3203 Introduce RemoteFileTemplate

Begin by refactoring `FileTransferringMessageHandler` to use
a `send` operation on RemoteFileTemplate.

Effectively transfer all properties from the adapter to the
template.

This will allow reuse of the send logic from the adapter in
the outbound gateway for `put` and `mput`.

JIRA: https://jira.springsource.org/browse/INT-3203