PIM-3264: Add code support for filters

| Q                    | A
| -------------------- | ---
| Bug fix?             | N
| New feature?         | Y
| BC breaks?           | Y
| CI currently passes? | Y
| Tests pass?          | Y
| Scenarios pass?      | ?
| Checkstyle issues?*  | N
| PMD issues?**        | N
| Changelog updated?   | N
| Fixed tickets        | PIM-3264
| DB schema updated?   | N
| Migration script?    |
| Doc PR               |

- [ ] Add behat
- [x] Test on ee
- [x] Test on ee smart
string or array ? can be confusing for the dev, for instance i pass a datetime, the message notify me that i must use a string, but an array is useable too, maybe introduce a multiTypeExpected($attribute->getCode(), 'filter', ['string', 'array']) (not sure about the naming)