bug 1094767; crashstorage type for new ES module

This PR introduces a crashstorage type for the new ES module.  It also modifies the `ConnectionContext` class to bring it in line with the patterns established in the other `external` modules.  The changes to the context required some other modifications to be made to the index creation class (and associated tests).

`r?` @AdrianGaudebert @twobraids 
This doesn't do a copy of the ``config`` object. Thus, the following line changes the config object shared by all methods of this class. It doesn't cause any harm here because this test is the last to run, but if you were to add a test after this, it would fail. 

The correct way to do this would be:

```python
bad_config = self.get_tuned_config(ESCrashStorage, extra_values={
    'resource.elasticsearch.elasticsearch_urls': ['']
})
```