Organize test jobs
# What does this PR do?

This PR reorganizes the jobs run on CircleCI to avoid launching setups and running the test fetcher multiple times when there is no tests found to run.

More precisely, it always run the three following jobs:
- `check_code_quality`
- `check_repo_consistency`
- `fetch_tests`
Then the actual tests jobs are run after `fetch_tests` and are immediately cancelled graciously if the `fetch_tests` job didn't find any tests. All of them read the list of tests found by `fetch_tests` and don't re-run the test_fetcher.

This also introduces a `fetch_all_tests` job which creates the file all jobs are looking for and fill it with all the tests, so the nightly run can reuse the same jobs as the standard one. As a result, all jobs `xxx_all` can be safely deleted.

To see the result of a run with one py modified, look at this [report](https://github.com/huggingface/transformers/runs/8381129029) (commit [With a modification in one file only](https://github.com/huggingface/transformers/pull/19058/commits/44c3a39d420a9118dc3586104fe0d3fcaf7c2321) below). Some of the tests are run only on the impacted tests like others (examples, custom tokenizers, layout lm tests) are run on specific tests as long as there was at least a modification warranting some tests. This is the same behavior as before.

To see the result of a run with no code modification, look at this [report](https://github.com/huggingface/transformers/pull/19058/checks?check_run_id=8381322343) (commit [No change, no tests](https://github.com/huggingface/transformers/pull/19058/commits/4497731b550ee7db9f82f0d6d5384e352b51b904) below). All jobs are still run but take a couple of seconds only.

To see the result of a run with all tests run, look at the CI report of this PR (which cleans up a modification I added in the setup and merged by mistake).
_The documentation is not available anymore as the PR was closed or merged._<|||||>I think your Build PR Documentation is hanging again :eyes: 