XD-1824 Support RabbitMQ Cluster in source/sink

The rabbit connection factory supports cluster failover
by providing a list of `host:port` in the `addresses`
property.

Tested with:

`xd:>stream create foo --definition "time | rabbit --addresses=localhost:5672,10.0.0.3:5672" --deploy`
`xd:>stream create bar --definition "rabbit --queues=foo --addresses=localhost:5672,10.0.0.3:5672 | log" --deploy`

And shutting down local rabbitmq - failed over to remote.
Restart local, shutdown remote; failed back.
Still, this will likely need a change given how defaults may be injected. 
Problem is, if one defines a default to *e.g.* port, the default-injection-code will likely re-inject the computed value of getAddresses() into setAddresses().

This is the problem we encountered on the tail module wrt "native" option. A safe approach is to have addresses be a plain getter/setter and expose a private getEffectiveAddresses() that does the computation (and use ${effectiveAddresses} in the xml).

Hope that makes sense