Repository: evidentlyai/evidently
Issue: Bug when supplying TestCatColumnsOutOfListValues with a list of column names
Root cause: Algorithmic Error

When running a test suite using the following:
```py
def create_test_suite(report_start_date: datetime.datetime, report_end_date: datetime.datetime):
    data_drift_test_suite = TestSuite(
        tests=[
            DataDriftTestPreset(columns=column_mapping.categorical_features + column_mapping.numerical_features),
            NoTargetPerformanceTestPreset(columns=column_mapping.categorical_features + column_mapping.numerical_features),
            DataStabilityTestPreset(columns=column_mapping.categorical_features + column_mapping.numerical_features),
            DataQualityTestPreset(columns=column_mapping.categorical_features + column_mapping.numerical_features),
        ],
        timestamp = pd.to_datetime(report_start_date),
    )
    time_mask = (df_cur[column_mapping.datetime] >= pd.to_datetime(report_start_date)) & (df_cur[column_mapping.datetime] < pd.to_datetime(report_end_date))
    data_drift_test_suite.run(reference_data=df_ref, current_data=df_cur[time_mask], column_mapping=column_mapping)
    return data_drift_test_suite
```

I get the following error upon project creation:

```
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[178], [line 1]
----> [1] create_demo_project(WORKSPACE)

Cell In[177], [line 13]
     [10] report = create_report(start_date, end_date)
     [11] ws.add_report(project.id, report)
---> [13] test_suite = create_test_suite(start_date, end_date)
     [14] ws.add_test_suite(project.id, test_suite)

Cell In[172], [line 12](vscode-notebook-cell:?execution_count=172&line=12)
      [2] data_drift_test_suite = TestSuite(
      [3]     tests=[
      [4]         DataDriftTestPreset(columns=column_mapping.categorical_features + column_mapping.numerical_features),
   (...)
      [9]     timestamp = pd.to_datetime(report_start_date),
     [10] )
     [11] time_mask = (df_cur[column_mapping.datetime] >= pd.to_datetime(report_start_date)) & (df_cur[column_mapping.datetime] < pd.to_datetime(report_end_date))
---> [12] data_drift_test_suite.run(reference_data=df_ref, current_data=df_cur[time_mask], column_mapping=column_mapping)
     [13] return data_drift_test_suite

File c:\Users\u\AppData\Local\Programs\Python\Python311\Lib\site-packages\evidently\test_suite\test_suite.py:135, in TestSuite.run(self, reference_data, current_data, column_mapping, engine, additional_data, timestamp)
    [133] for test in tests:
    [134]     if isinstance(test, BaseGenerator):
--> [135]         self._add_tests_from_generator(test)
    [136]     else:
    [137]         self._add_test(test)

File c:\Users\u\AppData\Local\Programs\Python\Python311\Lib\site-packages\evidently\test_suite\test_suite.py:100, in TestSuite._add_tests_from_generator(self, test_generator)
     [99] def _add_tests_from_generator(self, test_generator: BaseGenerator):
--> [100]     for test_item in test_generator.generate(self._data_definition):
    [101]         self._add_test(test_item)

File c:\Users\u\AppData\Local\Programs\Python\Python311\Lib\site-packages\evidently\tests\data_quality_tests.py:1386, in TestCatColumnsOutOfListValues.generate(self, data_definition)
   [1380] else:
   [1381]     columns = [
   [1382]         column
   [1383]         for column in self.columns
   [1384]         if data_definition.get_column(column).column_type == ColumnType.Categorical
   [1385]     ]
-> [1386] return [
   [1387]     TestShareOfOutListValues(
   [1388]         column_name=column.column_name,
   [1389]         is_critical=self.is_critical,
   [1390]     )
   [1391]     for column in columns
   [1392] ]

File c:\Users\u\AppData\Local\Programs\Python\Python311\Lib\site-packages\evidently\tests\data_quality_tests.py:1388, in <listcomp>(.0)
   [1380] else:
   [1381]     columns = [
   [1382]         column
   [1383]         for column in self.columns
   [1384]         if data_definition.get_column(column).column_type == ColumnType.Categorical
   [1385]     ]
   [1386] return [
   [1387]     TestShareOfOutListValues(
-> [1388]         column_name=column.column_name,
   [1389]         is_critical=self.is_critical,
   [1390]     )
   [1391]     for column in columns
   [1392] ]

AttributeError: 'str' object has no attribute 'column_name'
```

Not 100% sure, but would changing Line 1382 to:
`data_definition.get_column(column)` fix this? (similar to Line 1378)

https://github.com/evidentlyai/evidently/blob/b958d9a187a7c5b34048aeacba664052c9cf2f0c/src/evidently/tests/data_quality_tests.py#L1376-L1392