BUG: any/all not returning booleans for object type
- [x] closes #12863, closes #27709, closes #35450
- [x] tests added / passed
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing.html#code-standards) for how to run them
- [x] whatsnew entry

Also allows removing some of the any/all specific boolean conversion logic in frame reduction code, which (hopefully) also fixes part of #41079.