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`
Actually; there was still another problem - the mock `BQC` was spinning a CPU because `nextMessage()` was a noop - https://github.com/garyrussell/spring-amqp/commit/39b1933e0294181457fd66fcb9f9daa7027fbb23

It's still not clear to me why spinning a single CPU would hang the build, though.