API: avoid passing Manager to subclass __init__
- [x] closes #57032 (Replace xxxx with the GitHub issue number)
- [x] [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
- [x] 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.

Many subclasses have `__init__` methods that call `super().__init__`, which in the relevant cases with a Manager object is deprecated.  The solution in this PR is to construct the pd.DataFrame/Series and pass that to the subclass's `_constructor`.

This removes _sliced_from_mgr and _expanddim_from_mgr, as they are not really necessary, simplifying things a bit.  Also makes _from_mgr `@final`.  Can separate these simplifications into their own PR on request.  xref #56681.

For subclasses that currently have special handling for Manager objects in their `__init__`, they will need to move that special handling to the appropriate `_constructor(_foo)?_from_mgr` method.  The only package I'm aware of that does this is geopandas, so this includes a shim special-casing GeoDataFrame intended to maintain the current behavior until they have time to move that logic.  cc @jorisvandenbossche ATM the shim is only in _constructor_from_mgr, pls advise on whether something analogous is needed in constructor_sliced_from_mgr and _constructor_expanddim_from_mgr.
thx @jbrockmendel  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.2.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 805dbde3651fa4f7c30d5c9c247f723dceb7dfde
```

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

```
git commit -am 'Backport PR #57553: API: avoid passing Manager to subclass __init__'
```

4. Push to a named branch:

```
git push YOURFORK 2.2.x:auto-backport-of-pr-57553-on-2.2.x
```

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

> "Backport PR #57553 on branch 2.2.x (API: avoid passing Manager to subclass __init__)"

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).
                