[WIP] Sparse Target Dummy Classifier

- [x] Test sparse with all four strategies 
- [x] Fit with sparse target
- [x] Predict sparse target
- [ ] 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 
- [ ] Random sampling function outputs sparse column
- [ ] Test random sampling function with simulation
I was assuming that you would create the entire matrix directly with interface like:
```python
def random_choice_csc(n_samples, classes, class_probability):
    """Generate a sparse random matrix given a class distribution

    Parameters
    ----------
    n_samples : int,
        Number of samples to draw

    classes : list of size n_outputs of array of size (n_classes, )
        List of classes for each column.

    class_probability : list of size n_output of array of size (n_classes)
        Class distribution of each column.

    Return
    ------
    random_matrix : sparse csc matrix of size (n_samples, n_outputs)

    """    
```