BUG accept and deprecate negative integer for max_colwidth
- [x] closes #31532
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

Do you have an entry point in the documentation to add the removal of support for version 1.2, to ease the maintanance on your side? So from the tests failing it seems `is_nonnegative_int` will handle `None` while `is_int` will not.
It seems a bit surprising at first. @jorisvandenbossche would it make sense that they behave the same? Probably this just an internal function anyway. ping @jreback it's green :) 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 1.0.x
$ git pull
```

2. Cherry pick the first parent branch of the this PR on top of the older branch:
```
$ git cherry-pick -m1 8dfb54967a935562e3379f999a696fdd1b4ba545
```

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

```
$ git commit -am 'Backport PR #31569: BUG accept and deprecate negative integer for max_colwidth'
```

4. Push to a named branch :

```
git push YOURFORK 1.0.x:auto-backport-of-pr-31569-on-1.0.x
```

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

> "Backport PR #31569 on branch 1.0.x"

And apply the correct labels and milestones.

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

If these instruction are inaccurate, feel free to [suggest an improvement](https://github.com/MeeseeksBox/MeeseeksDev).
                 thanks @glemaitre  @glemaitre if u want to do the manual back port above would be great I'll do that.