BUG: Bug in MultiIndex.has_duplicates when having many levels causes an indexer overflow (GH9075)
closes #9075 

so this is implemented on a `MultiIndex` mainly for a perf benefit (e.g. it is order number of levels, rather than length of the index).

Should implement the trivial version of `Index` for compat. Essentially its `not self.is_unique`
 this can overflow with int64 as well. it should follow something like [this](https://github.com/pydata/pandas/blame/e92df221aa958dc24a70cd42836f5b6f72d4b497/pandas/core/reshape.py#L485) and ideally factorized in one place
 @behzadnouri you are probably right but I don't this is a practical overflow (unlike a groupby which deals with s theoretical space). can u come up with an example that actually does overflow? (obviously using int64)
 [this commit](https://github.com/pydata/pandas/commit/c934e02da0a8f988c56310c2ca29fdb492c94c83) , which says:

> Fix int64 overflow issue when unstacking MultiIndex with many levels (#2616)

the [`get_group_index`](https://github.com/pydata/pandas/blob/e92df221aa958dc24a70cd42836f5b6f72d4b497/pandas/core/groupby.py#L3493) function is technically doing the same thing as in the first lines of `has_duplicates` function.
 @behzadnouri 

what do you think?
 closing in favor of #9101 
