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`
BTW, another working trick: 
````xml
<rabbit:queue-arguments>
	<entry key="x-expires" value="#{100}"/>
</rabbit:queue-arguments>
````