Use types in elasticsearch for differend haystack indexes.

Fixes #503, thanks to @davedash for previous patch on which this one is
based.
As it's built today, using the `indexes` field on a `UnifiedIndex` is unsafe without manually ensuring it's been built. If this call is done before something else has tickled the UnifiedIndex into building itself, indexes will be an empty list. This is reproducible by starting up a django or celery process and doing an index rebuild right away, for instance.

As it happens, I was burned by this and submitted a Pull Request to make UnifiedIndex safer here: https://github.com/toastdriven/django-haystack/pull/851/files

That was some time ago and maybe it was too extreme. I'll look into revising it and maybe just implementing indexes with a property decorator and that ensures lazy-builds the UnifiedIndex. Regardless, until UnifiedIndex is fixed this code need to do something like:

```
unified_index = haystack.connections[self.connection_alias].get_unified_index()
if not unified_index._built:
    unified_index.build()
```