Raise exceptions instead of using assertions for control flow
Adding the remaining tasks for this issue to help new code contributors.  
$ cd src/datasets && ack assert -lc 
- [ ] splits.py:4
- [ ] commands/convert.py:1
- [ ] arrow_reader.py:3
- [ ] load.py:7
- [ ] utils/patching.py:1
- [ ] utils/py_utils.py:2
- [ ] features/features.py:9
- [ ] arrow_writer.py:7
- [ ] data_files.py:1
- [ ] search.py:6
- [ ] table.py:1
- [ ] metric.py:3
- [ ] tasks/image_classification.py:1
- [ ] arrow_dataset.py:17
- [ ] fingerprint.py:6
- [ ] io/json.py:1
- [ ] io/csv.py:1
Motivated by https://github.com/huggingface/transformers/issues/12789 in Transformers, one welcoming change would be replacing assertions with proper exceptions. The only type of assertions we should keep are those used as sanity checks.

Currently, there is a total of 87 files with the `assert` statements (located under `datasets` and `src/datasets`), so when working on this, to manage the PR size, only modify 4-5 files at most before submitting a PR.