API: Disallow sets as index and columns argument in DataFrame constructor

- [x] closes #47215 
- [x] `pandas/tests/frame/test_constructors.py` method `test_columns_indexes_raise_on_sets`
- [x] 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/v1.5.0.rst` file if fixing a bug or adding a new feature.

Note:  This also allowed some typing changes removing some `#type: ignore` statements
This pull request is stale because it has been open for thirty days with no activity. Please [update](https://pandas.pydata.org/pandas-docs/stable/development/contributing.html#updating-your-pull-request) and respond to this comment if you're still interested in working on this. @jreback have merged with latest master.  You were last to review - suggesting using `ensure_index()`, but that created test failures. hmm https://github.com/pandas-dev/pandas/runs/7271930917?check_suite_focus=true

i thinksomething changed on master for types...... > hmm https://github.com/pandas-dev/pandas/runs/7271930917?check_suite_focus=true
> 
> i thinksomething changed on master for types......

Yes, there was a change made that made the `_set_axis()` parameter have too wide a type.  It included `Sequence`, and I changed it to `list`

We have to avoid using `Sequence` in general, and `Sequence[str]` specifically because a plain string will match either.

Next commit addresses that. thanks @Dr-Irv lgtm.