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
Replace hardcoded use of 15.0 for $oldGuavaVersion
XD-1985 - Guava packaging cleanup - take 2
Added stream state tests

Improved assert message
XD-1982 Add https Support to http Source

Tested as follows:

- Obtained an SSL certificate from startssl.com (free) for my domain
- Installed into a keystore along with startssl's trusted and root certs...

````
gpr@testserver:~/Documents/startssl$ cat testserver.pem sub.class1.server.ca.pem ca.pem > chain.pem
gpr@testserver:~/Documents/startssl$ openssl pkcs12 -export -in chain.pem -inkey ssl.key -out testserver.pkcs12
````

- Installed the intermediate a new cert into java's cacerts...

````
gpr@testserver:/usr/lib/jvm/jdk1.7.0_51/jre/lib/security$ sudo keytool -import -trustcacerts -keystore cacerts -alias testserver -file ~/Documents/startssl/testserver.cer
gpr@testserver:/usr/lib/jvm/jdk1.7.0_51/jre/lib/security$ sudo keytool -import -trustcacerts -keystore cacerts -alias startsslsubclass1 -file ~/Documents/startssl/sub.class1.server.ca.pem
gpr@testserver:/usr/lib/jvm/jdk1.7.0_51/jre/lib/security$ sudo keytool -import -trustcacerts -keystore cacerts -alias startsslroot -file ~/Documents/startssl/ca.pem
````

(Default password for java cacerts `changeit`)

The startssl.com root cert is already in the cacerts.

Add fully qualified hostname for the server for which the cert was created to /etc/hosts

- Start singlenode
- Start shell

````
xd:>stream create foo --definition "http --https=true --secrets=file:/home/gpr/tmp/httpssl | log" --deploy
Created and deployed new stream 'foo'
xd:>http post --target https://testserver.mydomain.net:9000 --data "hello"
> POST (text/plain;Charset=UTF-8) https://testserver.mydomain.net:9000 hello
> 200 OK
````

````
17:57:11,138  INFO pool-11-thread-7 sink.foo - hello
````

XD-1982 Polishing

Rename ssl properties location field and make it consistent with rabbit.

xd:>stream create foo --definition "http --https=true --sslPropertiesLocation=file:/home/gpr/tmp/httpssl | log" --deploy
Created and deployed new stream 'foo'