Result filtering on search (also known as Partial Search)

First take at refactoring search to allow selective results, rather than returning the whole thing.
Oops, I see why we have to check the size of `args` now, never mind.