Make DataFrame arithmetic ops with 2D arrays behave like numpy analogues
- [x] closes #22686 
- [x] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

Change DataFrame arithmetic behavior when operating against 2D-ndarray such that `op(df, arr)` broadcasts like `op(df.values, arr)`.

Related: #22880.  Note this does NOT change the behavior of DataFrame comparison operations, so that PR (more specifically, the tests) will have to be updated if this is merged.

@timlod can you confirm that this is what you ha din mind in #22686?

