Use types in elasticsearch for differend haystack indexes.

Fixes #503, thanks to @davedash for previous patch on which this one is
based.
In a rebuild situation that empties the only doc_type in the index, we delete the mapping now, and get_mapping with return an empty dict (because the index exists, but no mappings). The `[self.index_name]` will throw a `KeyError`. Can either add KeyError to the catch block or replace the `[self.index_name]` with a `.get(self.index_name)`. Let me know if these comments aren't helpful. I'm testing this PR locally. I'd contribute changes and tests, but I haven't been able to get tests running in a stable way on master.