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)
```
normalized keep data so use uid
Added preliminary documentation
correct master settings
add link to elasticsearch client library docs
fixed lint errors
Added module and state for adding new firewall rules
Add extra handling to highstate outputter for 'Comment'
Ensure that freebsd service rc.conf ends in newline before appending
Add note about ``if_missing`` to archive.extracted
Added a _utils sync mechanism for distributing utility source files to minions (#12712)
Fixed whitespaces
Fixed incorrect indentation
Better sysctl test detection.

Closes #12408
persisting auto status
delete key must be string
Pylint
fixed tests to add auto field in SafeKeep
try using name instead of eid do remote key
fixed logic bug in check_minion_cache
Merge remote-tracking branch 'upstream/develop' into sam_raet_39