AMQP-377: SMLC: Fix Consumers Map Race Condition

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

There is a case when container is empty (without queues)
and adding new queues and attempt to start container from cycle causes
the `ConcurrentModificationException` on `consumers` `Map` iteration,
when `queuesChanged` and `doStart` modify the Map.

Move `addAndStartConsumers` operation in the `queuesChanged()` outside from cycle to avoid the concurrent modification race condition

AMQP-377 Polishing; Fix Consumer Accounting

Add an integration test.

Fix a problem where too many consumers were started because the
`consumers` map still contained stale consumers that were in the
process of stopping.
Add Explict spring-context Dep. to spring-rabbit

spring-rabbit includes a number of classes with compile dependencies
upon spring-context, for example RabbitAdmin. It's currently only
getting spring-context transitively via its optional dependency on
spring-retry.

This causes a problem when spring-rabbit is depended upon as it can
lead to spring-retry's version of spring-context being used. This is
3.0.5.RELEASE which does not match the versions of the other spring
modules that spring-rabbit directly depends upon.

This commit adds a direct compile dependency upon spring-context
which better expresses the project's dependencies and ensures that a
matching and up-to-date version of spring-context is used.