Improve Elasticsearch initialization

Improve the way that Elasticsearch is initailized in a couple ways:

- Take the settings from the classes the same way that the mappings are
  taken.

- Merge mappings and settings into the initial index creation. In this
  manner, the settings are only ever configured the first time through,
  which prevents the scary need to close the index and re-open it.

- Detect index already exists error more robustly.
should this not be `body=body['mappings']`?