ENH: Implement subtraction for object-dtype Index
- [x] closes #19369
- [x] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

@jreback @jorisvandenbossche discussed briefly at the sprint.  Merits more thorough testing, but I'd like to get the go-ahead to separate out arithmetic tests that are common to EA/Index/Series/Frame[1col] that are highly duplicative first.
>  but I'd like to get the go-ahead to separate out arithmetic tests that are common to EA/Index/Series/Frame[1col] that are highly duplicative first.

You will need to give some more details, but let's do such a change in a separate PR anyway, so I would simply fix up and merge this one first. > Regarding testing, I think you should only add rsub case to the test?

> I don't think you are exercising rsub?

rsub is tested implicitly in the `result = index - pd.Index([Decimal(1), Decimal(1)])` line.  I'll make that explicit. # [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/21981?src=pr&el=h1) Report
> :exclamation: No coverage uploaded for pull request base (`master@27ebb3e`). [Click here to learn what that means](https://docs.codecov.io/docs/error-reference#section-missing-base-commit).
> The diff coverage is `100%`.

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

```diff
@@            Coverage Diff            @@
##             master   #21981   +/-   ##
=========================================
  Coverage          ?   91.96%           
=========================================
  Files             ?      166           
  Lines             ?    50331           
  Branches          ?        0           
=========================================
  Hits              ?    46289           
  Misses            ?     4042           
  Partials          ?        0
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `90.36% <100%> (?)` | |
| #single | `42.23% <33.33%> (?)` | |

| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/21981?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/core/indexes/base.py](https://codecov.io/gh/pandas-dev/pandas/pull/21981/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvaW5kZXhlcy9iYXNlLnB5) | `96.36% <100%> (ø)` | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/21981?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/21981?src=pr&el=footer). Last update [27ebb3e...bd6e88c](https://codecov.io/gh/pandas-dev/pandas/pull/21981?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
 @jbrockmendel thanks!