AMQP-406: Add RoutingCF to the RabbitTemplate

JIRA: https://jira.spring.io/browse/AMQP-406

* Add support of `connection-factory-selector-expression` for the `RabbitTemplate`
and provide logic to bind target `ConnectionFactory` to the invocation context based on the result of the expression evaluation.
This doesn't look right to me - `doExecute()` will get a second resource holder with `this.connectionFactory`.

Why can't we simply pass the evaluated `lookupKey` into `doExecute()` and call `getTransactionalResourceHolder()` with the right factory?