EZP-23397: Elasticsearch: Implement language filters

This PR resolves issue https://jira.ez.no/browse/EZP-23397

Field filters are dispatched to the visitors and used in criteria visitors that deal with fields or field data These are Field, CustomField, MapLocationDistance and FullText.

With this field filters get the property of filtering the search result. This is necessary as they can't be applied to the search result, they must be a part of a condition in order for pagination to work correctly.

If field filters are not matched by language filtering using `LanguageCode` criterion and non field-filtering criteria is used, it is possible that service throws `NotFoundException`. See test added in https://github.com/ezsystems/ezpublish-kernel/commit/84f133869d216f5bd35077517f6feea364f31850 for more details. This means field filters should always be accompanied with corresponding `LanguageCode` criterion filter. Future search helper should provide this with automagically integrating siteaccess language configuration.

Dedicated set of tests is implemented, testing the expected behaviour of above mentioned criteria. This will be refactored in a follow-up into a field criteria test framework in order to remove duplication and enable 3rd party implementations of field criteria easier testing of expected behaviour.

#### TODOs
- [x] DRY refactor visitors changes
- [x] \(post-review\) Create follow-up issue for field filters criteria test framework

#### Follow-ups
* [EZP-23524](https://jira.ez.no/browse/EZP-23524): Implement field filters in Legacy Storage Engine search
* [EZP-23526](https://jira.ez.no/browse/EZP-23526): Refactor field filters search tests into a field criteria test framework