check_estimator is broken

### Describe the bug

Since the version 1.3.0, the check_estimator function is broken for all our custom estimators, but for native estimators as well.

An exception is raised for the test `check_estimators_pickle`: `ValueError: When creating aligned memmap-backed arrays, input must be a single array or a sequence of arrays`.

This seems to be linked to the integration of this new code, line 2006 of `sklearn/utils/estimator_checks.py`:
 ```
    if readonly_memmap:
        unpickled_estimator = create_memmap_backed_data(estimator)
```
that is trying to pass an estimator into the np.memmap() function.

How can I fix this issue ? Is this expected behaviour ?

Thanks !

### Steps/Code to Reproduce

```from sklearn.utils.estimator_checks import check_estimator
from sklearn.svm import LinearSVC

def test_sklearn_compatible_estimator():
    check_estimator(LinearSVC())  # fails
```

### Expected Results

```
============================== 1 passed in 1.55s ===============================
PASSED                 [100%]
```

### Actual Results

```
../../venv/lib/python3.9/site-packages/sklearn/utils/estimator_checks.py:630: in check_estimator
    check(estimator)
../../venv/lib/python3.9/site-packages/sklearn/utils/_testing.py:156: in wrapper
    return fn(*args, **kwargs)
../../venv/lib/python3.9/site-packages/sklearn/utils/estimator_checks.py:2007: in check_estimators_pickle
    unpickled_estimator = create_memmap_backed_data(estimator)
../../venv/lib/python3.9/site-packages/sklearn/utils/_testing.py:510: in create_memmap_backed_data
    memmap_backed_data = _create_aligned_memmap_backed_arrays(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data = LinearSVC(random_state=0), mmap_mode = 'r'
folder = '/tmp/sklearn_testing_5p8gnq3s'

    def _create_aligned_memmap_backed_arrays(data, mmap_mode, folder):
        if isinstance(data, np.ndarray):
            filename = op.join(folder, "data.dat")
            return _create_memmap_backed_array(data, filename, mmap_mode)
    
        if isinstance(data, Sequence) and all(
            isinstance(each, np.ndarray) for each in data
        ):
            return [
                _create_memmap_backed_array(
                    array, op.join(folder, f"data{index}.dat"), mmap_mode
                )
                for index, array in enumerate(data)
            ]
    
>       raise ValueError(
            "When creating aligned memmap-backed arrays, input must be a single array or a"
            " sequence of arrays"
        )
E       ValueError: When creating aligned memmap-backed arrays, input must be a single array or a sequence of arrays
```

### Versions

```shell
System:
    python: 3.9.15 (main, Feb 27 2023, 19:08:54)  [GCC 9.4.0]
executable: XXX/venv/bin/python
   machine: Linux-5.15.90.1-microsoft-standard-WSL2-x86_64-with-glibc2.31

Python dependencies:
      sklearn: 1.3.1
          pip: 22.0.4
   setuptools: 67.8.0
        numpy: 1.24.4
        scipy: 1.10.1
       Cython: None
       pandas: 2.1.1
   matplotlib: 3.8.0
       joblib: 1.2.0
threadpoolctl: 3.1.0

Built with OpenMP: True
```

COMMENT:
Cannot reproduce on `main`, this code:

```py
from sklearn.svm import LinearSVC
from sklearn.utils.estimator_checks import check_estimator

check_estimator(LinearSVC(dual="auto"))
```

only gives:

```
/home/adrin/Projects/sklearn/scikit-learn/sklearn/utils/estimator_checks.py:638: SkipTestWarning: Skipping check_sample_weights_invariance for LinearSVC: zero sample_weight is not equivalent to removing samples
  warnings.warn(str(exception), SkipTestWarning)
WARNING: class label 0 specified in weight is not found
```

Labels: Bug, Needs Triage