Fix EZP-21700: Search API returning duplicate content ids

This PR resolves issue https://jira.ez.no/browse/EZP-21700

Using Search with Field SortClause was producing duplicate Content ids when Content existed in multiple languages.
Field values are stored in separate row for each language, because of this `JOIN` produced multiple rows for the same Content. Therefore using sort on a Field value makes no sense without language information.

The problem is fixed by introducing optional $langaugeCode parameter for Field SortClause and using it for joining with `ezcontentobject_attribute` table. If $languageCode is not set, joining with `ezcontentobject_attribute` table will be done with main language of the Content, which is always known. Note: this is not the same as the most prioritized language from settings.

If Field SortClause with a language is provided on a criteria that does not match Content with such a language, Content will still appear in the result set, meaning sorting does not perform filtering. In that case it's sort field values will be equal to NULL and will not affect the order of items.

Note that it is possible to use multiple sort clauses with different language on a same Field.

### TODO

- [x] Ensure that only published FieldDefinitions and ContentTypes are joined
- [x] Add more tests for the case above