Make database backend return a SearchResults object

Previously the database backend returned a QuerySet which provides many features that the Elasticsearch backends SearchResults class doesn't have.

This pull request fixes this by making the database search backend return an object with the same API as the Elasticsearch backend to help make writing code that works on both backends easier.