DataFrame constructor fails with extension dtype and columns
I *think* this should be supported.

```python
In [8]: pd.DataFrame(columns=['a'], dtype=pd.CategoricalDtype())
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-8-a44ecacab92a> in <module>
----> 1 pd.DataFrame(columns=['a'], dtype=pd.CategoricalDtype())

~/sandbox/pandas/pandas/core/frame.py in __init__(self, data, index, columns, dtype, copy)
    405             )
    406         elif isinstance(data, dict):
--> 407             mgr = init_dict(data, index, columns, dtype=dtype)
    408         elif isinstance(data, ma.MaskedArray):
    409             import numpy.ma.mrecords as mrecords

~/sandbox/pandas/pandas/core/internals/construction.py in init_dict(data, index, columns, dtype)
    224         # no obvious "empty" int column
    225         if missing.any() and not is_integer_dtype(dtype):
--> 226             if dtype is None or np.issubdtype(dtype, np.flexible):
    227                 # GH#1783
    228                 nan_dtype = object

~/Envs/pandas-dev/lib/python3.7/site-packages/numpy/core/numerictypes.py in issubdtype(arg1, arg2)
    391     """
    392     if not issubclass_(arg1, generic):
--> 393         arg1 = dtype(arg1).type
    394     if not issubclass_(arg2, generic):
    395         arg2_orig = arg2

TypeError: data type not understood
```

**Expected Output**

```python
In [10]: pd.DataFrame(columns=['a']).astype('category')
Out[10]:
Empty DataFrame
Columns: [a]
Index: []
```