REF: centralize pyarrow Table to pandas conversions and types_mapper handling
We have defined this logic in several places, so defining one helper function to reuse that for the different IO formats.
Owee, I'm MrMeeseeks, Look at me.

There seem to be a conflict, please backport manually. Here are approximate instructions:

1. Checkout backport branch and update it.

```
git checkout 2.3.x
git pull
```

2. Cherry pick the first parent branch of the this PR on top of the older branch:
```
git cherry-pick -x -m1 12d6f602eea98275553ac456f90201151b1f9bf8
```

3. You will likely have some merge/cherry-pick conflict here, fix them and commit:

```
git commit -am 'Backport PR #60324: REF: centralize pyarrow Table to pandas conversions and types_mapper handling'
```

4. Push to a named branch:

```
git push YOURFORK 2.3.x:auto-backport-of-pr-60324-on-2.3.x
```

5. Create a PR against branch 2.3.x, I would have named this PR:

> "Backport PR #60324 on branch 2.3.x (REF: centralize pyarrow Table to pandas conversions and types_mapper handling)"

And apply the correct labels and milestones.

Congratulations — you did some good work! Hopefully your backport PR will be tested by the continuous integration and merged soon!

Remember to remove the `Still Needs Manual Backport` label once the PR gets merged.

If these instructions are inaccurate, feel free to [suggest an improvement](https://github.com/MeeseeksBox/MeeseeksDev).
                 Will backport Hmm looking at this some more @jorisvandenbossche it looks like the 2.3 branch in parquet.py requires there to be a `split_blocks` argument; I suppose we need to add that to the function here too? Yeah, either just add that, or add a generic `to_pandas_kwargs` that get passed through, I would say Backport PR https://github.com/pandas-dev/pandas/pull/60332