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 
Is it actually needed that we support this? Should't it rather raise?