BUG: Support array interface
ENH: enable y to only implement the array interface

For instance y could be a pandas' dataframe
COSMIT: fix indentation
BUG: fix validation bug
ENH: support non-ndarray subclasses in supervised estimator
ENH: transformers work on non ndarray subclasses
DOC: more comments

Based on @amueller's review
COSMIT:

Address @amueller's comments