ENH: Add BytesIOWrapper
- [ ] closes #39383
- [ ] tests added / passed
- [ ] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing.html#code-standards) for how to run them
- [ ] whatsnew entry

Precursor for pyarrow csv reader integration.

@jorisvandenbossche Do you know if there is any workaround I can use to read StringIO's on the arrow side? Adding this wrapper feels very hacky.