AMQP-402 Fix Error Log on Normal Channel Close

JIRA: https://jira.spring.io/browse/AMQP-402

Incorrect Method (Connection.Close) examined for
normal close instead of Channel.Close.

Also fix memory leak - remove entries from
`listenerForSeq` when processing confirms.
AMQP-403 Add Cause to Nack Callback

JIRA: https://jira.spring.io/browse/AMQP-403

When available, include the cause of a nack in the callback.

AMQP-403 Polishing - Review Comments
AMQP-405: Improve `AbstractRoutingConnectionFactory`

JIRA: https://jira.spring.io/browse/AMQP-405

Added add,remove and get methods for targetConnectionFactories in
AbstractRoutingConnectionFactory

Added protected methods for
addTargetConnectionFactory,removeTargetConnectionFactory and
getTargetConnectionFactory so clients manipulate the map if needed

I have signed and agree to the terms of the SpringSource Individual
Contributor License Agreement.

Changed targetConnectionFactories Map implementation to
ConcurrentHashMap and made the variable final. Also made the
ConnectionFactoryListener List variable final.

I have signed and agree to the terms of the SpringSource Individual
Contributor License Agreement.

Add `if (lookupKey != null)`
Fix Test Timing; Reduce Test Log Size

Checking listener map before it was cleared

WARN log "Planned failure" in ConditionalRejectingErrorHandler.
Update Spring Framework, RabbitMQ Client Versions
Fix Occasional Failing Test

https://build.spring.io/browse/AMQP-MEIGHT-JOB1-164

Test verifies that prefetched messages are processed
when the container is stopped. However, the test does
not ensure that the prefetched messages are all queued
before stopping.

Wait until the queue size is > 3 and the first message
has been delivered to the listener (prefetch = 5).

Add diagnostic to the latch assertions.
AMQP-409 Allow Late Replies to go to a DLQ

JIRA: https://jira.spring.io/browse/AMQP-409

When a late reply is received, instead of just logging the
event, reject the delivery so that (if so configured) the
late reply can be routed to a DLX/DLQ.
AMQP-408 channelTransacted=true when txManager

JIRA: https://jira.spring.io/browse/AMQP-408

`SimpleMessageListenerContainer`: coerce `channelTransacted=true` when `transactionManager` is provided
AMQP-413 Add RabbitConnectionFactoryBean for SSL

JIRA: https://jira.spring.io/browse/AMQP-413

Ported from Spring XD and added delegate methods for
other setters.

No tests. SSL functionally tested in XD, delegate
methods generated by the IDE.

Polishing