[MRG] Supporting non array subclasses

The support (and test) for y being not an array subclass is implemented, but I still need to work on X.
> I don't like so much copy & paste :-/ I'm not sure what a good alternative
> would be, though.

Yes, I was wondering. One option would be to add those checks to existing
tests. It reduces the test isolation, which is a bad thing, but might
make the test suite faster.