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
Add generate_password to shadow module
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 arbitrary libcloud args in salt cloud profile
Cleaning up whitespace
Merge branch 'yanatan16-patch-linode-libcloud-args' into develop
Adding boto_* modules and states to documentation.
Merge pull request #12923 from lyft/boto-documentation

Adding boto_* modules and states to documentation.
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