**Describe what's wrong**

It's not possible to initialize aggregation function from nullable types.

**Does it reproduce on recent release?**

Yes, 
ClickHouse version 21.10

```
SELECT initializeAggregation('uniqExactState', toNullable(''))


0 rows in set. Elapsed: 0.003 sec.

Received exception from server (version 21.10.1):
Code: 43. DB::Exception: Received from localhost:9000. DB::Exception: Nested type AggregateFunction(uniqExact, String) cannot be inside Nullable type: While processing initializeAggregation('uniqExactState', toNullable('')). (ILLEGAL_TYPE_OF_ARGUMENT)


SELECT initializeAggregation('uniqExactState', toNullable(1))


Received exception from server (version 21.10.1):
Code: 43. DB::Exception: Received from localhost:9000. DB::Exception: Nested type AggregateFunction(uniqExact, UInt8) cannot be inside Nullable type: While processing initializeAggregation('uniqExactState', toNullable(1)). (ILLEGAL_TYPE_OF_ARGUMENT)
```


**Expected behavior**

It should be possible to initialize aggregation function from nullable types.


**Additional context**

WA

```
SELECT arrayReduce('uniqExactState', [toNullable('')])

Query id: 29fc6760-78be-4f28-be5f-f1bbe12f04fc

┌─arrayReduce('uniqExactState', array(toNullable('')))─┐
│ 2���V���嵶����                                                │
└──────────────────────────────────────────────────────┘
```

for (size_t j = 0; j < i; ++j)
                agg_func.destroy(places[j]);
            throw;
        }
    }
    SCOPE_EXIT_MEMORY_SAFE({
        for (size_t i = 0; i < input_rows_count; ++i)
            agg_func.destroy(places[i]);
    });
    {
        const auto * that = &agg_func;
        
        while (const auto * func = typeid_cast<const AggregateFunctionState *>(that))
            that = func->getNestedFunction().get();
        that->addBatch(input_rows_count, places.data(), 0, aggregate_arguments, arena.get());
    }
    for (size_t i = 0; i < input_rows_count; ++i)
        if (!res_col_aggregate_function)
            agg_func.insertResultInto(places[i], res_col, arena.get());
        else
            res_col_aggregate_function->insertFrom(places[i]);
    return result_holder;
}
}
void registerFunctionInitializeAggregation(FunctionFactory & factory)
{
    factory.registerFunction<FunctionInitializeAggregation>();
}
}