**Use case**
Text preprocessing and matching inside ClickHouse.

**Describe the solution you'd like**
Wrap functions from `icu` library. The functions should work on UTF-8 data.

**Additional context**
See also a sibling task: #17182.

M(579, INCORRECT_PART_TYPE) \
    M(580, CANNOT_SET_ROUNDING_MODE) \
    M(581, TOO_LARGE_DISTRIBUTED_DEPTH) \
    M(582, NO_SUCH_PROJECTION_IN_TABLE) \
    M(583, ILLEGAL_PROJECTION) \
    M(584, PROJECTION_NOT_USED) \
    M(585, CANNOT_PARSE_YAML) \
    M(586, CANNOT_CREATE_FILE) \
    M(587, CONCURRENT_ACCESS_NOT_SUPPORTED) \
    M(588, DISTRIBUTED_BROKEN_BATCH_INFO) \
    M(589, DISTRIBUTED_BROKEN_BATCH_FILES) \
    M(590, CANNOT_SYSCONF) \
    M(591, SQLITE_ENGINE_ERROR) \
    M(592, DATA_ENCRYPTION_ERROR) \
    M(593, ZERO_COPY_REPLICATION_ERROR) \
    M(594, BZIP2_STREAM_DECODER_FAILED) \
    M(595, BZIP2_STREAM_ENCODER_FAILED) \
    M(596, INTERSECT_OR_EXCEPT_RESULT_STRUCTURES_MISMATCH) \
    M(597, NO_SUCH_ERROR_CODE) \
    M(598, BACKUP_ALREADY_EXISTS) \
    M(599, BACKUP_NOT_FOUND) \
    M(600, BACKUP_VERSION_NOT_SUPPORTED) \
    M(601, BACKUP_DAMAGED) \
    M(602, NO_BASE_BACKUP) \
    M(603, WRONG_BASE_BACKUP) \
    M(604, BACKUP_ENTRY_ALREADY_EXISTS) \
    M(605, BACKUP_ENTRY_NOT_FOUND) \
    M(606, BACKUP_IS_EMPTY) \
    M(607, BACKUP_ELEMENT_DUPLICATE) \
    M(608, CANNOT_RESTORE_TABLE) \