BUG: various categorical fixes (GH8626)

BUG: coerce Categorical in record array creation (GH8626)
BUG: Categorical not created properly with to_frame() from Series (GH8626)
BUG: handle astype with passed pd.Categorical (GH8626)

closes #8626 
we could raise and and technically we should as Categorical is NOT a dtype
ok will switch back as it is really stretching the API