MAINT: refactor from_items() using from_dict()
This removes the deprecation warnings introduced in #18262,
by reimplementing `DataFrame.from_items()` in the recommended
way using `DataFrame.from_dict()` and `collections.OrderedDict`.

This eliminates the maintenance burden of separate code for
`from_items()`, while allowing existing uses to keep working.

A small cleanup can be done once #8425 is fixed.

- [x] closes #21850
- [x] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry
