implement masked_arith_op to de-duplicate ops code
ATM _arith_method_SERIES and _arith_method_FRAME have really similar fallback code.  This de-duplicates those.

- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`

# [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/22182?src=pr&el=h1) Report
> Merging [#22182](https://codecov.io/gh/pandas-dev/pandas/pull/22182?src=pr&el=desc) into [master](https://codecov.io/gh/pandas-dev/pandas/commit/475e391eaa0c85c4615ad6da5f81dee9b890635b?src=pr&el=desc) will **increase** coverage by `<.01%`.
> The diff coverage is `100%`.

[![Impacted file tree graph](https://codecov.io/gh/pandas-dev/pandas/pull/22182/graphs/tree.svg?width=650&height=150&src=pr&token=eZ4WkYLtcO)](https://codecov.io/gh/pandas-dev/pandas/pull/22182?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master   #22182      +/-   ##
==========================================
+ Coverage   92.08%   92.08%   +<.01%     
==========================================
  Files         169      169              
  Lines       50704    50695       -9     
==========================================
- Hits        46691    46683       -8     
+ Misses       4013     4012       -1
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `90.49% <100%> (ø)` | :arrow_up: |
| #single | `42.34% <7.69%> (ø)` | :arrow_up: |

| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/22182?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/core/ops.py](https://codecov.io/gh/pandas-dev/pandas/pull/22182/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvb3BzLnB5) | `96.56% <100%> (+0.09%)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/22182?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/22182?src=pr&el=footer). Last update [475e391...d8ab2a5](https://codecov.io/gh/pandas-dev/pandas/pull/22182?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
 looks ok, if you can comment a bit more, this consolidates a gnarly bit of code, which is full of special cases. and rebase. > this consolidates a gnarly bit of code, which is full of special cases

Yah.  A bunch of it we'll be able to simplify after #22163, #22019, and the not-yet-written third PR in that sequence make a bunch of it unnecessary. thanks