fix: 🐛 optimize the query to get the list of valid datasets
optimization: avoid getting first all the dataset names from the splits,
and then put them into a set: it's a lot quicker to use distinct to only
get the distinct name from mongo.

fixes https://github.com/huggingface/datasets-server/issues/326

On a dump of the production database, it now takes 75ms

```
0.075 cache.py:456(get_valid_or_stalled_dataset_names)
```

instead of 2 seconds! 🥲

```
2.082 cache.py:456(get_valid_or_stalled_dataset_names)
```

For the record: I use [cProfile](https://towardsdatascience.com/how-to-profile-your-code-in-python-e70c834fad89) to profile the calls
fix: 🐛 optimize the query to get the list of valid datasets: optimization: avoid getting first all the dataset names from the splits,
and then put them into a set: it's a lot quicker to use distinct to only
get the distinct name from mongo.

fixes https://github.com/huggingface/datasets-server/issues/326

On a dump of the production database, it now takes 75ms

```
0.075 cache.py:456(get_valid_or_stalled_dataset_names)
```

instead of 2 seconds! 🥲

```
2.082 cache.py:456(get_valid_or_stalled_dataset_names)
```

For the record: I use [cProfile](https://towardsdatascience.com/how-to-profile-your-code-in-python-e70c834fad89) to profile the calls