ENH: Polymorphic `pd.eq()` and friends 
#### Is your feature request related to a problem?

I'm looking for a polymorphic way to test for equality. Right now, ff I want to compare two objects in pandas, I need to know the type so I can use `DataFrame.eq` or `Series.eq`, or if they're scalars then I need to use `x == y` or similar.

It would be nice if there were a `pd.equals(x, y)` method that could handle scalars, series, dataframes, indexes, etc. Right now I'm rolling my own custom version of this code.

I might be missing some obvious solution here, if so please point me there.

#### Describe the solution you'd like

Probably this would just involve some type checking and then dispatch to the proper methods. This should be elementwise, so you get back `bool | np.nan` data of the same shape.

Of course, this also opens the door to a whole lot more questions, like probably then there should be a corresponding `pd.ne`, `pd.lt`, etc for other comparisons.

#### API breaking implications

Would add a lot more API surface area, and there are lots of little questions as to how to make this consistent with the rest of the API, e.g. is `nan == nan`? That's what `DataFrame.equals` uses, but not `DataFrame.eq`.

#### Describe alternatives you've considered

I can add this later if this idea get's any support.