Currently, the fuzz runner accepts a --par option to schedule fuzz runs in parallel. This is fine. However, when only a single target is selected, --par will not speed up the run. Moreover, when multiple targets are selected, the run-time of the longest target dominates.
Fix both issues by splitting the corpus to into --par equal-sized shards by default. The sharding can be disabled, if needed.
Can be tested e.g. by running a single target:
time ./bld-cmake/test/fuzz/test_runner.py --par 1 -l DEBUG ./qa-assets/fuzz_corpora/ utxo_snapshot # slow
time ./bld-cmake/test/fuzz/test_runner.py --par 99 -l DEBUG ./qa-assets/fuzz_corpora/ utxo_snapshot # fast