BUG: hash_pandas_object fails on array containing tuple #28969
- [x] closes #28969
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

ATM this implements a smoke-test that the cases don't raise, but I don't have a canonical answer to test them against.  Could hard-code the result I get now.  Thoughts?
moved the tuple-catching to hash_object_array, added check for non-hashable within a tuple also have 2 tests in the OP

```
pd.util.hash_pandas_object(pd.DataFrame({'data': [tuple('1'), tuple('2')]})) # fails
pd.util.hash_pandas_object(pd.DataFrame({'data': [tuple([1]), tuple([2])]})) # fails
```
 Also needs a whatsnew note. > also have 2 tests in the OP

these are the df1 and df2 in the test that this adds.

> Also needs a whatsnew note.

updated. Thanks!