XD-1970 Improve Thread Naming for Rabbit Bus

JIRA: https://jira.spring.io/browse/XD-1970

Previously, all listener container threads in the
RabbitMessageBus had the same name.

This made it difficult to debug.

Use the queue name as the thread prefix so that you
can easily identify the module in the log.
Fixed compile warnings
XD-1870 More Rabbit Host/Port -> Addresses

Some places were missed when changing the configuration
from host/port to addresses.

Also remove vcap from application.yml.
XD-1960 Fix ArrivingContainer deployment

- To avoid duplicate of modules into the arriving container,
use `ModuleDeploymentsPath` to check if the same module type of the given
stream is already deployed into the arriving container
- Fix for both stream/job module deployments

2nd commit message:

Fix code reivew comments

- Use module label instead of module type when detecting pre-existing deployment in
the container
- Refactoring changes
XD-1870 Allow Rabbit Modules to Inherit Properties

Set the default values of addresses, username, password,
vhost to the property names from application.yml/servers.yml.
XD-1510 Lower some logging levels

Fix o.s.i -> o.s.amqp

Remove noisy Spring Batch @Configuration warning

Using log4j for tomcat logs
XD-1976 Unable to deploy job in UI

* Add test case for `getModuleNameFromJobDefinition` when retrieving the module name for definitions without parameters
* Fix `getModuleNameFromJobDefinition`
* Disable the `Deploy` button as long as no module name has been retrieved
XD-1964 Suppress LoggingApplicationListener warning

- The issue with LoggingApplicationListener's incorrect warning
message is fixed in spring-boot but since we can't upgrade to
the latest, as a temporary fix setting the log level for
LoggingApplicationListener to `ERROR`
XD-1974 WebUI: Pull `Back` button to top right

- Fix the `Back` buttons for all the details pages
XD-1979: Restore 'log' sink output
1980: Remove duplicate log info on application startup

- Set DIRT server logging to INFO
- Update appropriate logStartupInfo
- Set logStartupInfo only for the last child application created for
`admin`, `container` so that we know the server is really started
- Set the appropriate main class for `single-node` so that
admin and container server class names are shown when the admin/container
server is started.
XD-386: Automate check for copyright/license header
XD-1120 Standardize Date/Time/TimeZone handling

* Add custom `ISO8601DateFormat` class for Jackson that supports milliseconds
* Configure REST support to serialize dates using ISO8601
* Add class `TimeUtils` to centralize any `DateFormats` or retrieval of `TimeZones`
* Support UTC as much as possible
* Polish the Shell and the Admin UI
* Add `moment.js` so that ISO8601 dates can be properly handled in the Admin UI
* Add AngularJS directive to centralize the rendering of *durations*
* Fix several tests

Jira: https://jira.spring.io/browse/XD-1120

XD-1120 Improve TimeZone config capabilities for the shell

XD-1120 UI: Add directive to render date/time values

* Ensure that date/times are show in `local` browser time

XD-1120 Convert Scheduled Date/Time to UTC

* Add disclaimer to Cron Expression stating that cron expressions are evaluated in the server timezone
* Polish form validation

XD-1120 Code Review Changes
XD-1120 Fix help text for CliOptions in ConfigCommands
WebUI: Improve help messages
XD-1983 NodeExistException on ModuleMetadata write

- Ignore ZK `NodeExistsException` on writing module metadata as this
is likely to happen when the container disconnects and reconnects
but the admin leader was not available to handle the container
departure event.
  - In this case, upon container disconnect the modules on that
container get undeployed and when the container reconnects
the `DeploymentListener` makes sure to deploy the same modules
except the fact that the ZK paths for the deployment and module
metadata already exists.

2nd commit message:

Fix code review comment

- Make sure to update the status even when `NodeExistsException`
is thrown while writing module metadata path.
Module doc generation: handle the case for 0 options
Support SSL for RabbitMQ

Follow the RabbitMQ instructions to set up SSL for rabbitmq:

https://www.rabbitmq.com/ssl.html

In application.yml, servers.yml etc...

Property `useSSL` for simple SSL (no certificate validation).

Property `sslProperties' points to a protected properties file with secrets...

````
$ cat /secret/sslprops
keyStore=file:/secret/client/keycert.p12
trustStore=file:/secret/trustStore
keyStore.passPhrase=secret
trustStore.passPhrase=secret
````

servers.yml:

````
spring:
  rabbitmq:
   addresses: 10.0.0.3:5671
   username: guest
   password: guest
   virtual_host: /
   useSSL: true
   sslProperties: file:/secret/sslprops
````

XD-1978 Polishing - PR Comments

Rename factory bean
Add asserts
XD-1978 polishing
XD-1985 : Packaging of Guava 17 results in failure to deploy mapreduce job to Hadoop 2.4 based distros