CLN: pandas.core.dtypes.common._get_dtype_type
should be a lot simpler, using ``pandas_dtype``

get's somewhat closer
```
diff --git a/pandas/core/dtypes/common.py b/pandas/core/dtypes/common.py
index a01266870..02753825a 100644
--- a/pandas/core/dtypes/common.py
+++ b/pandas/core/dtypes/common.py
@@ -1944,14 +1944,10 @@ def _get_dtype_type(arr_or_dtype):
     elif isinstance(arr_or_dtype, PeriodDtype):
         return Period
     elif isinstance(arr_or_dtype, string_types):
-        if is_categorical_dtype(arr_or_dtype):
-            return CategoricalDtypeType
-        elif is_datetime64tz_dtype(arr_or_dtype):
-            return Timestamp
-        elif is_period_dtype(arr_or_dtype):
-            return Period
-        elif is_interval_dtype(arr_or_dtype):
-            return Interval
+        # registered extension types
+        result = _pandas_registry.find(arr_or_dtype) or registry.find(arr_or_dtype)
+        if result is not None:
+            return type(result)
         return _get_dtype_type(np.dtype(arr_or_dtype))
     else:
         from pandas.core.arrays.sparse import SparseDtype
```