**Describe the situation**
hasAll() filter condition not relying on bloom filter, but re-writing as series of has() AND has()... (or series of indexOf conditions) does use bloom filter 

**How to reproduce**
* ClickHouse server version: 21.2.7.2

Test Table: 
- 33M records, 10 columns
- MergeTree() engine, has a sort order specified
- Has a field STRING_ARRAY that is a Array(String) column. It has a bloom filter data-skipping index (`TYPE bloom_filter(0.01) GRANULARITY 1`)

The following query takes 1.5 seconds: 
```
SELECT * FROM db_name.table_name
WHERE hasAll(STRING_ARRAY, ['value_1', 'value_2', 'value_3']
```
Running `EXPLAIN indexes = 1`, only the primary key is picked up. The bloom filter isn't used. 

The following query takes 0.45 seconds: 
```
SELECT * FROM db_name.table_name
WHERE has(STRING_ARRAY, 'value_1') AND has(STRING_ARRAY, 'value_2') AND has(STRING_ARRAY, 'value_3')
```
Running `EXPLAIN indexes = 1`, the bloom filter is used. 

**Expected performance**
Expecting the hasAll() filter condition to also get performance improvement from the bloom filter on STRING_ARRAY. 

{
    
    if (node->as<ASTSubquery>() || node->as<ASTIdentifier>())
        return PreparedSetKey::forSubquery(*node);
    if (const auto * date_type_tuple = typeid_cast<const DataTypeTuple *>(&*data_type))
        return PreparedSetKey::forLiteral(*node, date_type_tuple->getElements());
    return PreparedSetKey::forLiteral(*node, DataTypes(1, data_type));
}
ColumnWithTypeAndName getPreparedSetInfo(const SetPtr & prepared_set)
{
    if (prepared_set->getDataTypes().size() == 1)
        return {prepared_set->getSetElements()[0], prepared_set->getElementsTypes()[0], "dummy"};
    Columns set_elements;
    for (auto & set_element : prepared_set->getSetElements())
        set_elements.emplace_back(set_element->convertToFullColumnIfConst());
    return {ColumnTuple::create(set_elements), std::make_shared<DataTypeTuple>(prepared_set->getElementsTypes()), "dummy"};
}
bool maybeTrueOnBloomFilter(const IColumn * hash_column, const BloomFilterPtr & bloom_filter, size_t hash_functions)