fix utils.grep __in and __notin filters

Since grep iterates over search parameters passed as array
and trims the result set after each iteration __in and __notin
don't work correctly as a prior filtering run might exclude results
that a second run might match.
tests for untested utils.grep methods
Merge pull request #120 from pall-valmundsson/grep-tests

Bugfix and tests for utils.grep