Prevent multiple calls to #query

Iterating over multiple TermSearch objects and separately applying them
to a search causes multiple calls to #query, of which only the last will
make it to elastic search.

This change re-structures things so a single #query is called and each
TermSearch adds a must-match clause to it.
Fix mocking of elastic search

* Also update specs which require search to have the correct tag
Rename scenario
Handle blank parameters