[MRG] Sparse Target Dummy Classifier

- [x] Test sparse with all four strategies 
- [x] Fit with sparse target
- [x] Predict sparse target
- [x] ~~Simplify (skip steps) when constant strategy is used~~
- [x] Clean up redundancies of indicies, data, indptr in predict
- [x] Clean up conditional redundancies in fit 
- [x] Random sampling function outputs sparse column
- [x] Test random sampling function ~~with simulation~~
- [x] Uniques/class distribution function for multilabel-multioutput (share with sprs knn)
- [x] Always use dense predict with uniform case, and throw a sparse efficiency warning.
If you work only with integer, I would replace the choice with a searchsorted approach (which is normally faster).
You would do something int hose lines

```python
In [20]: p = np.array([0.1, 0.2, 0.7])

In [21]: cum_p = p.cumsum()

In [22]: classes = np.searchsorted(cum_p, np.random.rand(1000))

In [23]: np.bincount(classes) / 1000.
Out[23]: array([ 0.103,  0.183,  0.714])
```