ENH: MultiIndex.intersection now keeping EA dtypes
- [ ] closes #xxxx (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.

Nice performance boost

```
       before           after         ratio
     [b5632fb3]       [ed481f4f]
     <intersection~4>       <intersection>
-      8.81±0.2ms      7.49±0.08ms     0.85  index_object.SetOperations.time_operation('non_monotonic', 'strings', 'symmetric_difference')
-      16.5±0.2ms      12.2±0.05ms     0.74  index_object.SetOperations.time_operation('monotonic', 'date_string', 'intersection')
-      49.7±0.7ms       20.7±0.3ms     0.42  multiindex_object.SetOperations.time_operation('monotonic', 'ea_int', 'intersection')
-      49.9±0.3ms       19.9±0.3ms     0.40  multiindex_object.SetOperations.time_operation('monotonic', 'int', 'intersection')
-         119±1ms       33.2±0.3ms     0.28  multiindex_object.SetOperations.time_operation('monotonic', 'datetime', 'intersection')
-      31.7±0.1ms      4.98±0.05ms     0.16  multiindex_object.SetOperations.time_operation('non_monotonic', 'string', 'intersection')
-      31.8±0.4ms       4.83±0.2ms     0.15  multiindex_object.SetOperations.time_operation('monotonic', 'string', 'intersection')
-      35.5±0.2ms      4.62±0.01ms     0.13  multiindex_object.SetOperations.time_operation('non_monotonic', 'ea_int', 'intersection')
-      34.6±0.4ms       3.35±0.1ms     0.10  multiindex_object.SetOperations.time_operation('non_monotonic', 'int', 'intersection')
-      73.4±0.8ms       3.42±0.1ms     0.05  multiindex_object.SetOperations.time_operation('non_monotonic', 'datetime', 'intersection')
```
Thanks @phofl 