[ArrayManager] DataFrame constructor from ndarray
xref https://github.com/pandas-dev/pandas/issues/39146

Currently, the `DataFrame(ndarray)` construction for ArrayManager still went through BlockManager and then `mgr_to_mgr` conversion, which is less efficient. 
This PR adds a check in `ndarray_to_mgr` for directly creating an ArrayManager.

~It's still WIP, because there are still some validation steps that are now done inside BlockManager/Block inits, that need to be factored out / shared / added to ArrayManager path.~