Raising for invalid dtype issue #15520
closes #15520 

- [ ] closes #xxxx
- [ ] tests added / passed
- [ ] passes git diff upstream/master | flake8 --diff
- [ ] whatsnew entry
Are you saying I should raise within the pandas_dtype method? yes ``pandas_dtype`` will raise if an invalid string is passed, but not an invalid object

```
In [1]: pandas.types.common.pandas_dtype(pd.Timestamp)
Out[1]: dtype('O')

In [2]: pandas.types.common.pandas_dtype('foo')
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-2-07647ef910a7> in <module>()
----> 1 pandas.types.common.pandas_dtype('foo')

/Users/jreback/pandas/pandas/types/common.py in pandas_dtype(dtype)
    491         return dtype
    492 
--> 493     return np.dtype(dtype)

TypeError: data type "foo" not understood

``` if you want to add some tests ping and will reopen