Update all ES queries to use Elasticsearch DSL (bug 1036168)

No, but that is being discussed: https://github.com/elasticsearch/elasticsearch-dsl-py/pull/10

`.execute()` does the query and gets the `Response` object, which has a list of `Result` objects in `hits`. Now that I'm looking at this again the line below could be better written as `self._count = len(hits)` or something. I don't think it needs to cache for this to work, however, if we're iterating over `object_list` from the paginator and `count` is already calculated. It'd do another ES request if we created the paginator again.