Let's discuss the output type check here.

I saw this issue: https://github.com/scikit-learn/scikit-learn/issues/1515

During that time, I think the output of the transform was still subject to changes, and so this test is written. But now it's already stable, and everyone seems to be convinced that those methods should return CSR. So, should I remove the type check? Or will it break somehow? It doesn't do any harm other than one additional check on `hasattr`, right?