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.
XD-1758: Use brokerURL for JMS but don't expose it as an option
XD-777: Prevent tapping on an inexistant module
XD-1760 Rabbit/Redis Bus Short Circuiting

For colocated modules, when instructed by the lead admin,
hard wire the modules together.

- When binding a short-circuited producer, save his properties in
the binding so they can be used to revert, when the consumer is
unbound.

- When the consumer is unbound, bind the producer to the bus
(concurrently with the direct binding), remove the direct binding,
then stop the consumer (so there is always at least one subscriber
to the producing module's output channel.

- If the consumer is re-deployed, switch back to short circuit.

- TODO: Currently requires a producer property `shortCircuitAllowed`

XD-1760 Polishing (Tests)

Add delay to redis check for empty queue.
XD-1856 Fix failing RemoteFileToHadoopTests after fsUri change
XD-1701: Remove need of Hadoop on admin classpath
XD-1856 Fix RemoteFileToHadoopTests

- Use `fsUri` instead of `spring.hadoop.fsUri`
XD-1831 Mask Database Passwords

* Add module option type `Password`
* In `JdbcConnectionMixin` - Change password property from `String` to type `org.springframework.xd.module.options.types.Password`
* In `DetailedModuleDefinitionResourceAssembler` mask default password module option
* In `JobsController#list()` return PagedResources<JobDefinitionResource> that contain masked passwords in the job definitions
* Create AngularJS directive `xdFormatStream`
* Create unit tests for AngularJS directive `xdFormatStream`
* In `module-create-definition.js` make sure the option type is correctly set
* In `definitions.html` make sure the `xd-format-stream` directive is called
* In `module-create-definition.html` set the form input field to type password, if the module option type is `Password'
* In `module-create-definition.html` set the form input field to be a checkbox, if the module option type is `boolean`
* Add E2E tests `create-new-definition.spec.js`
* In `module-create-definition.html` apply the xd-format-stream directive when outputting the `calculatedDefinition`
* Add `lodash` JS library
* Add Java utility class `org.springframework.xd.dirt.stream.util.StreamUtils`
* Add `StreamUtils#maskPasswordsInStreamDefinition`
* Add unit tests for `StreamUtils#maskPasswordsInStreamDefinition`

Jira: https://jira.spring.io/browse/XD-1831
XD-1831 Code review fixes + polishing

* Admin UI - support Unicode RegEx
* Add XRegExp library (For Unicode support)
* Add support to match both `password` and `passwd` parameters
* Fix `JobsController#list()`
* Fix JavaDoc in `StreamUtilsTests
* Add one more test to `StreamUtilsTests
* Add `toString()` to `org.springframework.xd.module.options.type.Password`
* Add tests for `org.springframework.xd.module.options.type.Password`
* Add more tests to `directives.js`
XD-1831 Fix failing test + rebase with MASTER