XD-923 Add Option to Auto Declare/Bind DLQ

JIRA: https://jira.spring.io/browse/XD-923
Sprint: 37

Add bus-level and consumer-level option `autoBindDLQ`.

When `true` when a consumer is bound, the bus will declare
the DLQ with name `xdbus.name.dlq` and bind it to exchange
`xdbus.DLX`. (xdbus is configurable using the `prefix` property).

Also, change queue and exchange declarations to perform passive
attempts first; this avoids issues if the user has pre-declared
the elements using incompatible arguments.

TODO: Doc changes after PR review
Hmmm - that wasn't my intent - I realized while writing this patch that if, say, someone had pre-declared the queue(s) with some custom arguments (such as TTL for example), the module deployment would fail. We always declare the queue with no arguments which would crash on the hard declaration.

This logic assumes that if the queue exists already the user knows what (s)he's doing.

Personally, I think it's generally better to use policies for all this stuff rather than arguments on individual queues, but I was trying to accommodate the possibility here. We can discuss if you think it's too lenient.

I __was__ going to check that the exchange type was correct (e.g. when declaring the Fanout exchange for pub/sub consumers, but I don't see a type being returned on the exchange `DeclareOk` object.