ENH make_multilabel_classification for large n_features: faster and sparse output support

This is a more focussed #2773.

`make_multilabel_classification` is currently very slow for large `n_features`, and only outputs dense matrices although it effectively generates a sparse structure.

Although this function can certainly be more optimised, the main Python iteration will slow it down I don't think there's much value in further optimisation.