Add a q.filter_terms() method, similar to q.filter_term() but for plural tests
Refactor the handling of query start and size, to provide a cleaner API, put responsibilities in the right place, and allow passing a raw dict to client.search() instead of a query instance