AMQP-316 Support Exclusive Consumer

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

Allow the `SimpleMessageListenerContainer` to be configured
with an exlusive consumer; preventing other consumers from
accessing the queue(s).
AMQP-374 Test and Doc Example for Request Reply

With a RabbitTemplate wired with a fixed reply queue, using
JavaConfig.

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

Polishing
AMQP-374 Add BrokerRunning Rule to Test
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.
AMQP-375 Doc Fixes

Incorrect references to `MessageListenerContainer`.

JIRA: https://jira.springsource.org/browse/AMQP-375
AMQP-378 Support Bulk Queue Changes

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

Consumers are restarted when queue changes are made.

Currently only one queue can be added/removed at a time.

Change the method args to varargs and make the method names
plural.

Deprecate the singular methods - we have at least one user
using this feature from the snapshot. The deprecated methods
can be removed in 1.3 GA.