ENH: Add Numpy Array Interface support to Pandas objects

WIP
same here, this needs to be part of the if-else. I would remove the ``com._unhandled_array_inteface`` and simply use ``is_array_like`` (and yes ``Categorical`` IS array_like. and if passed to the ``DataFrame`` constructor as a bare object WILL be converted to a ndarray, e.g. is_array_like is usally paired with a ``ndim`` check!)