download_mode="force_redownload" does not refresh cached dataset
{'login': 'nomisto', 'id': 28439912, 'node_id': 'MDQ6VXNlcjI4NDM5OTEy', 'avatar_url': 'https://avatars.githubusercontent.com/u/28439912?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nomisto', 'html_url': 'https://github.com/nomisto', 'followers_url': 'https://api.github.com/users/nomisto/followers', 'following_url': 'https://api.github.com/users/nomisto/following{/other_user}', 'gists_url': 'https://api.github.com/users/nomisto/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nomisto/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nomisto/subscriptions', 'organizations_url': 'https://api.github.com/users/nomisto/orgs', 'repos_url': 'https://api.github.com/users/nomisto/repos', 'events_url': 'https://api.github.com/users/nomisto/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nomisto/received_events', 'type': 'User', 'site_admin': False}
[]
[]
### Describe the bug

`load_datasets` does not refresh dataset when features are imported from external file, even with `download_mode="force_redownload"`. The bug is not limited to nested fields, however it is more likely to occur with nested fields.

### Steps to reproduce the bug

To reproduce the bug 3 files are needed: `dataset.py` (contains dataset loading script), `schema.py` (contains features of dataset) and `main.py` (to run `load_datasets`)

`dataset.py`
```python
import datasets
from schema import features

class NewDataset(datasets.GeneratorBasedBuilder):

    def _info(self):
        return datasets.DatasetInfo(
            features=features
        )

    def _split_generators(self, dl_manager):
        return [
            datasets.SplitGenerator(
                name=datasets.Split.TRAIN
            )
        ]

    def _generate_examples(self):
        data = [
            {"id": 0, "nested": []},
            {"id": 1, "nested": []}
        ]
        for key, example in enumerate(data):
            yield key, example
```

`schema.py`
```python
import datasets
features = datasets.Features(
    {
        "id": datasets.Value("int32"),
        "nested": [
            {"text": datasets.Value("string")}
        ]
    }
)
```

`main.py`
```python
import datasets
a = datasets.load_dataset("dataset.py")
print(a["train"].info.features)
```

Now if `main.py` is run it prints the following correct output: `{'id': Value(dtype='int32', id=None), 'nested': [{'text': Value(dtype='string', id=None)}]}`. However, if f.e. the label of the feature "text" is changed to something else, f.e. to


`schema.py`
```python
import datasets
features = datasets.Features(
    {
        "id": datasets.Value("int32"),
        "nested": [
            {"textfoo": datasets.Value("string")}
        ]
    }
)
```

 `main.py` still prints `{'id': Value(dtype='int32', id=None), 'nested': [{'text': Value(dtype='string', id=None)}]}`, even if run with `download_mode="force_redownload"`. The only fix is to delete the folder in the cache.

### Expected behavior

The cached dataset is deleted and refreshed when using `load_datasets` with `download_mode="force_redownload"`.

### Environment info

- `datasets` version: 2.7.0
- Platform: Windows-10-10.0.19041-SP0
- Python version: 3.7.9
- PyArrow version: 10.0.0
- Pandas version: 1.3.5
{'url': 'https://api.github.com/repos/huggingface/datasets/issues/5273/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}