ENH: Support ExtensionArray operators via a mixin
- [x] closes #19577
- [x] tests added / passed
    - tests/extension/decimal/test_decimal.py:TestOperator
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry
    - in v0.24.0

Based on a discussion in #20889, this provides a mixin (via a mixin factory) that provides a default implementation of operators for `ExtensionArray` using the operators defined on the underlying `ExtensionDtype` .  Tested using the `DecimalArray` implementation.

NOTE: This requires #21183 ~~and #21260~~ to be accepted into master, and so the changes from those pull requests are included here.

Comments from @jorisvandenbossche @TomAugspurger @jreback @jbrockmendel are welcome.

