AMQP-407 Redeclare AMQP object if they are missed

JIRA: https://jira.spring.io/browse/AMQP-407

Previously the `SimpleMessageListenerContainer` redeclared AMQP object for the new `Consumer`, only
if one of `Queues` was `autoDelete`.
Since `Queues` might be removed from the Broker according to the server TTL policy, there is need to take care of their redeclaration as well.

Fix `BlockingQueueConsumer` to `catch (AlreadyClosedException e)` on the `channel.basicCancel(consumerTag)` operation:
https://build.spring.io/browse/AMQP-NITEALL-373

Tested with `gradlew clean testAll`
The root of hanging issue is here, because `Mockito.spy` produces a new object, which hasn't been stopped before.
However it isn't clear why one more running Container may produce dead lock...