BUG: is_list_like returns True even if __iter__ raises an error
Changed so c_is_list_like() returns false if __iter__() throws exception

- [x] closes #54176
- [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
- [ ] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
- [X] Added an entry in the latest `doc/source/whatsnew/v2.1.0.rst` file if fixing a bug or adding a new feature.

@mroeschke Is removing the implementation of is_list_like as it is and going in the direction of a handful of explicitly supported types the correct direction to go? `is_list_like` is public so it can't be outright removed, but slowly internal usages should move away from `is_list_like`.

IOW, I would recommend working on another issue in the meantime until this issue is more settled Thanks for the PR but going to close until there's more direction on the original issue