AMQP-358: Cache CachedConnection's First Channel

JIRA: https://jira.springsource.org/browse/AMQP-358

Previously, each `Connection#createChannel` call of Cached Connection for
`CacheMode.CONNECTION` caused the creation of new `Channel`.

Provide the hook to cache the single `Channel` for each Cached Connection
and infrastructure logic to get deal with it's lifecycle.

AMQP-358: allow cache connections and channels

AMQP-358 Polishing

* Detect a closed connection when creating a channel
* Remove closed channels from the cache
* Properly handle refreshing the target of the proxy connection
    - clear the channel list
    - remove the proxy for the new target from the open list after stealing its target
* Fix the test assertions to cover the above
* Add a test for exceeding the channel cache size
* Add an integration test
AMQP-370 Add Rule to Container Test

JIRA: https://jira.springsource.org/browse/AMQP-370