CLN: Make non-empty **kwargs in Index.__new__ fail instead of silently dropped
In #29624 I made change so random kwargs weren't passed to ``Index._simple_new``. I'v found out after merging that the selected solution dropped non-empty kwargs, which isn't great either.

This version ensures that passing non-accepted kwargs raises, so ``pd.Index(['a'], foo="foo")`` raises a TypeError. Instead of raising a TypeError, should we deprecate adding non-accepted kwargs?

lgtm. merge on green.