ENH: Add support for ea dtypes in merge
- [x] closes #44240 (Replace xxxx with the GitHub issue number)
- [x] [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).
- [x] Added [type annotations](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#type-hints) to new arguments/methods/functions.
- [x] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature.

ASV failures might be real


```
2022-11-24T01:09:56.6735358Z [ 30.77%] ··· join_merge.MergeEA.time_merge                          2/10 failed
2022-11-24T01:09:56.6736230Z [ 30.77%] ··· ========= ==========
2022-11-24T01:09:56.6738310Z                 dtype             
2022-11-24T01:09:56.6738758Z               --------- ----------
2022-11-24T01:09:56.6739260Z                 Int64    12.8±0ms 
2022-11-24T01:09:56.6740223Z                 Int32    12.5±0ms 
2022-11-24T01:09:56.6740600Z                 Int16    11.4±0ms 
2022-11-24T01:09:56.6740850Z                  Int8     failed  
2022-11-24T01:09:56.6741171Z                 UInt64   11.9±0ms 
2022-11-24T01:09:56.6741481Z                 UInt32   12.8±0ms 
2022-11-24T01:09:56.6741774Z                 UInt16   11.6±0ms 
2022-11-24T01:09:56.6742021Z                 UInt8     failed  
2022-11-24T01:09:56.6742334Z                Float64   12.6±0ms 
2022-11-24T01:09:56.6742655Z                Float32   13.1±0ms 
2022-11-24T01:09:56.6742899Z               ========= ==========
``` Oh interesting, I’ll rerun them locally to check, they were passing at some point overflow error, removed them since a useful test is not possible ```
       before           after         ratio
     [14dc069f]       [38d558c6]
-      5.32±0.2ms      2.44±0.04ms     0.46  join_merge.MergeEA.time_merge('UInt64')
-      5.23±0.3ms      2.26±0.06ms     0.43  join_merge.MergeEA.time_merge('Float64')
-     5.38±0.05ms      2.25±0.02ms     0.42  join_merge.MergeEA.time_merge('UInt32')
-      5.32±0.3ms      2.19±0.03ms     0.41  join_merge.MergeEA.time_merge('Float32')
-      5.55±0.5ms      2.28±0.08ms     0.41  join_merge.MergeEA.time_merge('Int64')
-     5.39±0.08ms      2.15±0.01ms     0.40  join_merge.MergeEA.time_merge('UInt16')
-      5.51±0.5ms      2.07±0.02ms     0.38  join_merge.MergeEA.time_merge('Int32')
-      5.70±0.5ms      2.06±0.04ms     0.36  join_merge.MergeEA.time_merge('Int16')
``` Thanks @phofl  Thx, will open a pr to refactor tomorrow