fix(filterFilter): let expression object `{$: '...'}` also match primitive items

Closes #10428
No, we don't want that; it would be a breaking change.
With your code, even `{$: 'xyz', foo: 'bar'}` would match `'xyz'`; we don't want that (this would be a breaking change :P).

We want it to work like this **only** if `$` is the only (enumerable) property of the expression object.
And we have implemented it so that inherited enumerable properties count are considered as well (this was your suggestion).

So, we need to treat it specially only if `$` is the only enumerable property of th expression object.