Refactors filter to accept multiple values for AND query

This way we can pass multiple values for a category in to the query, and
it will filter via an AND.
Correct OR filtering for search
Fix tests for search