ENH: MultiIndex.from_product infers names from inputs if not explicitly provided
- [x] closes #27292
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

Infers names in `MultiIndex.from_product`  and normalizes handing of `names=None` between `from_arrays` and `from_product`