BUG: pretty print all Mappings, not just dicts
This was discovered in https://github.com/ibis-project/ibis/issues/8687

Due to a strict `isinstance(x, dict)` check, custom mapping types would instead get treated as mere iterables, so only the keys would get printed as a tuple:

```python
import pandas as pd
from ibis.common.collections import frozendict
pd.Series([frozendict({"a": 5, "b": 6})])
# 0    (a, b)
# dtype: object
```

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

that was a pretty nice experience setting up a dev environment locally, pass along my compliments to the rest of the pandas maintainers @mroeschke ! Thanks @NickCrews 