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.
I thought so, too, but no. Either we pass the doc_type argument or a dict
with the doc type as the top level key. In this case, we're doing the
latter.