is_vision_available() fails when using pillow-simd
### System Info

- `transformers` version: 4.30.2
- Platform: Linux-5.11.0-1022-aws-x86_64-with-glibc2.29
- Python version: 3.8.10
- Huggingface_hub version: 0.15.1
- Safetensors version: 0.3.1
- PyTorch version (GPU?): 2.0.0+cu118 (True)
- Tensorflow version (GPU?): 2.8.0 (True)
- Flax version (CPU?/GPU?/TPU?): not installed (NA)
- Jax version: not installed
- JaxLib version: not installed
- Using GPU in script?: no
- Using distributed or parallel set-up in script?: no

### Who can help?

@sgugger @apbard - additional checks introduced in https://github.com/huggingface/transformers/pull/23163 are failing on my environment.
This is because I'm using [pillow-simd](https://github.com/uploadcare/pillow-simd) and not the vanilla pillow package.
Is this drop-in pillow replacement not supported or is it possible to introduce additional logic to support this?

### Information

- [ ] The official example scripts
- [ ] My own modified scripts

### Tasks

- [ ] An officially supported task in the `examples` folder (such as GLUE/SQuAD, ...)
- [ ] My own task or dataset (give details below)

### Reproduction

First install pillow-simd (`pip install pillow-simd`)
Run the following code:
```
import PIL
print(PIL.__version__)

import transformers
print(transformers.utils.import_utils.is_vision_available())
```

### Expected behavior

Previous versions (before 4.30.*) return `True`
Thanks for reporting! This might be because of the new way we test if packages are available. @ydshieh would you have some bandwidth to take a look at this?<|||||>Sure, will take a look today!