REF: move IntervalIndex.equals up to ExtensionIndex.equals
any more equals you can remove because of this? (followon) > any more equals you can remove because of this? (followon)

Not without API changes, but it may be worthwhile to get these more strict/consistent >> any more equals you can remove because of this? (followon)

> Not without API changes, but it may be worthwhile to get these more strict/consistent

So the least invasive would be CategoricalIndex.  Changing it to match this strict version (actually just removing it) breaks 5 tests.  Four of these are asserting `index.equals(index.astype(object))`, which we test for all Index subclasses except IntervalIndex (which suggests IntervalIndex possibly should support this)

The fifth is an indexing test that _may_ indicate a bug elsewhere:

```
        df = DataFrame(np.random.randn(3, 3), index=list("ABA"), columns=list("XYX"))
        cdf = df.copy()
        cdf.index = CategoricalIndex(df.index)
        cdf.columns = CategoricalIndex(df.columns)
    
        exp_index = CategoricalIndex(list("AA"), categories=["A", "B"])
>       expect = DataFrame(df.loc["A", :], columns=cdf.columns, index=exp_index)
[...]
E           ValueError: cannot reindex from a duplicate axis
```
