QueryBuilder::whereCriteria: possibility to pass callback

It's maybe a bit weird, but `$filter` may contain something like:
```php
array($this, 'foo')
```