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`
Yes, I noticed that it has been so short interval to check. However from the beginning this test had passed for me even without this delay :smile: 

Out of topic: I spent time with IDEA 14 to work off with Debug. Doesn't see `resources`. Came back to IDEA 13 again :cry: ...

Pay attention please, to the `value-type="long"` for the `x-expires` Queue args. RabbitMQ accepts it only if it is `long`.
Not sure how can we overcome it, because other args might be exactly strings.