Don't infer labels from split-named directories in folder-based builders (#7880)

Fixes #7880.

## Summary

When an `audiofolder`/`imagefolder`/`videofolder` dataset is laid out as

```
folder/train/file0.mp3
folder/test/file1.mp3
```

with no class subdirectories, label inference accumulates the parent directory of each file across **all splits**, ends up with `labels = {\"train\", \"test\"}`, sees `len(labels) > 1`, and adds a spurious `label` column with `ClassLabel(names=[\"test\", \"train\"])` — i.e. it treats the split names themselves as class labels.

The example dataset called out in the issue (`datasets-examples/doc-audio-4`) reproduces this directly.

## Fix

When `drop_labels=None` (the default) and the only candidate label values are exactly the split names, skip label inference. The user can still opt in to the old behavior with explicit `drop_labels=False`, which is kept by a separate regression test.

```python
if (
    add_labels
    and self.config.drop_labels is None
    and labels.issubset(set(data_files))
):
    add_labels = False
```

## Reproduce BEFORE/AFTER yourself (copy-paste)

```bash
# --- BEFORE: origin/main ---
git fetch origin main && git checkout origin/main
python - <<'PY'
import os, tempfile, shutil
import PIL.Image
from datasets import load_dataset
tmp = tempfile.mkdtemp()
os.makedirs(tmp + "/train"); os.makedirs(tmp + "/test")
PIL.Image.new("RGB", (4, 4), "red").save(tmp + "/train/a.png")
PIL.Image.new("RGB", (4, 4), "blue").save(tmp + "/test/b.png")
shutil.rmtree(os.path.expanduser('~/.cache/huggingface/datasets'), ignore_errors=True)
ds = load_dataset("imagefolder", data_dir=tmp)
print(ds["train"].features)  # Expected: {'image': Image(...), 'label': ClassLabel(names=['test','train'])} ❌
PY

# --- AFTER: this branch ---
git fetch origin pull/<PR>/head:fix && git checkout fix
python - <<'PY'
import os, tempfile, shutil
import PIL.Image
from datasets import load_dataset
tmp = tempfile.mkdtemp()
os.makedirs(tmp + "/train"); os.makedirs(tmp + "/test")
PIL.Image.new("RGB", (4, 4), "red").save(tmp + "/train/a.png")
PIL.Image.new("RGB", (4, 4), "blue").save(tmp + "/test/b.png")
shutil.rmtree(os.path.expanduser('~/.cache/huggingface/datasets'), ignore_errors=True)
ds = load_dataset("imagefolder", data_dir=tmp)
print(ds["train"].features)  # Expected: {'image': Image(...)}  ✓ (no spurious 'label')
PY
```

## What I ran locally

```
pytest tests/packaged_modules/test_folder_based_builder.py
# 48 passed
```

The new `test_no_label_inferred_when_directories_match_split_names` fails on `origin/main` with the spurious `ClassLabel(names=['test','train'])` and passes on this branch. The companion `test_explicit_drop_labels_false_still_uses_split_dirs_as_labels` keeps the opt-in path covered.

## Edge cases covered

| Layout | `drop_labels` | Pre-fix | Post-fix |
|---|---|---|---|
| `train/file.mp3`, `test/file.mp3` (no class dirs) | `None` (default) | spurious `label` ❌ | no `label` ✓ |
| Same layout | `False` (explicit opt-in) | `label` from split names | unchanged (still `label`) |
| `train/cat/a.png`, `train/dog/b.png` (real classes) | `None` | `label=ClassLabel(['cat','dog'])` | unchanged ✓ |

Verified end-to-end with `imagefolder` (locally constructed PNGs) for the no-class case and the cat/dog case.

---

🤖 Disclosure: Authored with assistance from Claude (Anthropic), reviewed and tested by me.