BUG: groupby.describe with as_index=False incorrect
- [x] closes #49256 (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).
- [x] Added [type annotations](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#type-hints) to new arguments/methods/functions.
- [x] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature.

The describe bug was found while comparing differences between `_selected_obj` and `_obj_with_exclusions` (#46944). By removing `as_index` from the conditions that determine `_selected_obj`, we fix the describe bug, the apply inconsistency (see below), and bring `_selected_obj` and `_obj_with_exclusions` closer so that the latter can eventually be removed.

Currently `groupby(...).apply` with `as_index=True` will try to use the group keys, then if that fails with a TypeError will try to redo the computation without the group keys. In main, this is also attempted when `as_index=False`, however in that case the selection context does not exclude the group keys and so it's really just attempting the same exact computation again. This PR fixes this inconsistency by making `as_index=False` adopt the `as_index=True` behavior. In the one test that picked this up, we now agree with the original behavior that was desired in #7002.
> Is there a test where multiple keys are passed into groupby as well e.g. `df.groupby(["A", "B"], as_index=False).describe()`?

There is now :smile:. Added for Series and DataFrame. There are tests for multiple groupings, but I think all cases were not in-axis, so made sense to add these too. Nice thanks @rhshadrach (the groupby describe output looks more sane now)