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
Added label to the docs for writing execution modules
Added documentation on how to write Salt documentation

Closes #12792
Tidied up some rST syntax in the boto state modules
Merge pull request #12934 from gtmanfred/develop

do deep copy before creating CloudClient
Merge pull request #12930 from whiteinge/doc-salt-doc

Doc salt doc
Merge pull request #12929 from whiteinge/doc-boto-rst-fixes

Tidied up some rST syntax in the boto state modules