BLD: Build wheels for Python 3.12
- [ ] closes #54447 (Replace xxxx with the GitHub issue number)
- [ ] [Tests added and passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#writing-tests) if fixing a bug or adding a new feature
- [ ] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
- [ ] Added [type annotations](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#type-hints) to new arguments/methods/functions.
- [ ] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature.

Let's merge and backport this for 2.1.1.

This means we'll have nightlies up for Python 3.12 and also the option to upload Python 3.12 wheels for 2.1.1 if we want.

(I am still planning on waiting for numpy to release 1.26 before wheels are uploaded to PyPI. This is more so downstream can test with pandas). Thanks @lithomas1 