BENCH/REF: parametrize CSV benchmarks on engine
- [ ] closes #xxxx
- [ ] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

The diff in basic PR implementing the `pyarrow`-based CSV engine (#38370) is quite big. A part of that PR is a small refactor of the CSV I/O benchmarks such that they take `engine` as a parameter. Most of that refactor is not dependent on having the pyarrow engine so I'm spinning it off here to de-bloat #38370.
looks fine, checks are failing though, ping on green.

cc @gfyoung @WillAyd if comments. Atm not sure what's going on with the benchmark failure  - the failure is in `asv_bench/benchmarks/tslibs/timedelta.py` which doesn't get touched here https://github.com/pandas-dev/pandas/pull/38476 should fix the unrelated benchmark failure.  > #38476 should fix the unrelated benchmark failure.

Thanks @mroeschke!! > Is there some logic in which classes are parameterized and which not?

Not that I know of beyond (AFAIK) that the python engine supports all these whereas the c/pyarrow engines only support a proper subset. 

I'll do a pass through the entire file and parametrize where both c and python engines are supported. CI green thanks @arw2019 