fix(filter): throw error if not used with an array

Throw error if filter is not used with an array.

Closes #9992

BREAKING CHANGE: Previously, the filter was not applied if used with a non array.
Now, it throws an error.
not quite :>

```js
var item = {
  toString: null,
  valueOf: null,
};
expect(function() { filter(item, {}); }).
      toThrowMinErr('filter', 'notarray', 'Expected array but received: {"toString": null, "valueOf": null}');
```