BUG: unwanted conversions of timedelta dtypes when in a mixed datetimelike frame (GH7778)
closes #7778

TST: tests for internals/as_matrix() for all dtypes (including categoricals)

cc @JanSchulz

I fixed up doing something like

`df.values` when you have a categorical (or 2) as a dtype.
 @cpcloud 

should 

```
df = DataFrame({'bool' : [True, False], 'int' : [1, 2] })
df.values
```

be `object` or `int`? (I have it as object now).
 hm `int` more useful, but `object` more consistent with the fact that numpy separates `bool` from `int`, i think `int`. is this an api breaking change?
 I think it was object before
let me see
 @cpcloud only took the usual 5x iterations for make the 1.6.1 stuff work :<
 :rage: on 1.6
