PERF: Restore old performances with .isin() on columns typed as np.ui…
…nt64

- [ ] closes #60098 (Replace xxxx with the GitHub issue number)
- [ ] [Tests added and passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#writing-tests) if fixing a bug or adding a new feature
- [x] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
- [ ] Added [type annotations](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#type-hints) to new arguments/methods/functions.
- [ ] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature.

Only if dtypes are equal (e.g uint64 vs uint64, uint32 vs uint32...)

%timeit data["uints"].isin([np.uint64(1), np.uint64(2)]) # 17ms (!)
The last line, with older numpy==1.26.4 (last version <2.0), is even worse: ~200ms.
pre-commit.ci autofix Implicit conversion to float64 happens only whith uint64/int64.
I reverted the PR #46693 to provide an example based on initial issue #46485:

```
import pandas as pd
import numpy as np
test_df = pd.DataFrame([{'a': 1378774140726870442}], dtype=np.uint64)

print(1378774140726870442 == 1378774140726870528) 
#False

print(test_df['a'].isin([1378774140726870528])[0])
#True

print(test_df['a'].isin([1])[0])
#False
```

The second test must be False and was handled by the PR #46693
because there is implicit conversion to float64.
But if we change it to:

```
print(test_df['a'].isin([np.uint64(1378774140726870528)])[0])
#False
```

The result is correct because in this case there is no implicit conversion so it's not necessary to use object.
Regarding the performance, it's resolves partially the issue #60098:

Before:

```
import pandas as pd, numpy as np
data = pd.DataFrame({
    "uints": np.random.randint(10000, size=300000, dtype=np.uint64),
    "ints": np.random.randint(10000, size=300000, dtype=np.int64),
})

%timeit data["uints"].isin([np.uint64(1), np.uint64(2)]) # 239ms
```

After:
```
import pandas as pd, numpy as np
data = pd.DataFrame({
    "uints": np.random.randint(10000, size=300000, dtype=np.uint64),
    "ints": np.random.randint(10000, size=300000, dtype=np.int64),
})

%timeit data["uints"].isin([np.uint64(1), np.uint64(2)]) # 4ms
``` Thanks @pbrochart 