AMQP-230: DirectExchange: Allow Omit `key` Attr

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

Previously, the `key` attribute for a `direct-exchange` `binding` could be omitted,
but that meant that the binding used an empty `routingKey`.
With this change an empty `routingKey` requires `key=""`.
Omitting the `key` means that the binding will use the name of the provided `Queue` or `Exchange`
for the routing key.

AMQP-230: Move routingKey logic to DEParser

AMQP-230: routingKey resolution using SpEL

AMQP-230 Polishing

Author tag; what's new.