elasticsearch returner.

Dependencies:

- official elasticsearch python client
- jsonpickler.

configuration is defined in the master config file:

```yaml
ext_job_cahe: elasticsearch

elasticsearch:
    host: 'some.host.com:9200'
    index: 'salt'
    number_of_shards: 1 (optional)
    number_of_replicas: 3 (optional)
```
Added preliminary documentation
correct master settings
add link to elasticsearch client library docs
fixed lint errors
Initial commit of a zookeeper concurrency control module
Add generate_password to shadow module
Better, but it now has retries and sleeps
Add some comments
Add algorithm argument to get_hash
Use salt.utils.pycrypt to generate hashed password
compatible lower Crypto version

RHEL6/CentOS python-Crypto is v2.0.1
adjust salt to crypt_salt for gen_hash
Added note about using = in cmd.run commands

Refs #5884
Allow cloud information to come from pillar data
Document using Pillars for cloud config
Overwrite opts with what is in the pillars

I want to include all the things from the pillars, and have them
override everything that would be in the cloud configs.  We can make it
so that they do not update variables if it is already defined in
/etc/salt/cloud*, but I feel this way is better.
space pillar data better
format the profiles like salt-cloud is expecting them

inside the provider.
We use cloud instead of clouds everywhere else