PERF/CLN: Use Numpy C Iterator API to unify isnaobj 1D/2D
- [ ] closes #xxxx (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
- [ ] 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.

ASV's
```
       before           after         ratio
     [d3995f76]       [aff44731]
     <main>           <clean-perf-isna>
-         104±5ms       31.0±0.3ms     0.30  frame_methods.Isnull.time_isnull_strngs
-         107±7ms         30.5±2ms     0.29  frame_methods.Isnull.time_isnull_obj

SOME BENCHMARKS HAVE CHANGED SIGNIFICANTLY.
PERFORMANCE INCREASED.
```

```
mypy (stubtest)..........................................................Failed
- hook id: stubtest
- duration: 94.59s
- exit code: 1

pandas._libs.missing.isnaobj2d is not present at runtime
``` Thanks @lithomas1 