ENH: Add validation checks for non-unique merge keys
- [x] closes #27430
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`

After implementing the suggestion in #27430 I realized it should also apply to `1:m` and `m:1` merges. When any type of `many` merge is specified, an error will be raised if the `many` side is actually unique.