feat(filterFilter): support deeply nested predicate objects

Due to 339a165, it became impossible to filter nested properties of an object
using the filterFilter. A proposed solution to this was to enable the use of
nested predicate objects. This fix enables the use of these nested predicate
objects.

Example:

```html
<div ng-repeat="it in items | filter:{ address: { country: 'Canuckistan'}}"></div>
```

Or

```js
$filter('filter')(items, { address: { country: 'Canuckistan' } });
```

Related to #6009