BUG: support dtypes in column_dtypes for to_records()
Despite the name, the `column_dtypes` param in `DataFrame.to_records()` doesn't accept `np.dtype` objects:
```
In [3]: df = pd.DataFrame([[0, 1], [2, 3]])
In [4]: df.to_records(column_dtypes=df.dtypes)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-29-e3541f39084e> in <module>()
----> 1 df.to_records(column_dtypes=df.dtypes)

~/projects/pandas/pandas/core/frame.py in to_records(self, index, convert_datetime64, column_dtypes, index_dtypes)
   1724                 msg = ("Invalid dtype {dtype} specified for "
   1725                        "{element} {name}").format(dtype=dtype_mapping,
-> 1726                                                   element=element, name=name)
   1727                 raise ValueError(msg)
   1728 

ValueError: Invalid dtype int64 specified for column 0
```
The above also fails when `df.dtypes` is cast into a `dict` for overriding.

This PR simply adds `np.dtype` to the accepted types and adopts a subset of the tests that currently cover the numpy scalar types (`np.int64` and similar, which are not dtypes).

- [ ] closes #xxxx
- [x] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry
