[MRG] Sparse One vs. Rest

This is a PR for the other parts in PR #2458 concerning sparse output support for the ovr classier. This branch was made off of the sprs-lbl-bin branch from PR #3203 and will be rebased to remove all the sparse label binarizer additions from the diff once the pull request is merged.

Benchmark Experiments using PR #2828 for data generation:
- [x] ```fit_ovr```: ```sparse_output=True``` VS. ```sparse_output=sp.issparse(y)```
- [x] ```fit_ovr``` With input as CSR matrix: Cast to CSC before column extraction VS. Leave as CSR
- [x] Memory profiling for sparse vs. dense target data
- [x] Test the changes to label.py
- [x] Test probability and desicion functions after fitting on sparse target data
- [ ] Memory benchmark with ```njobs != 1```
I think the following is clearer:
```
col.toarray().ravel() for col in Y.T
```

Assuming Y is CSC performance doesn't seem affected. `cols_a` is yours, `cols_b` is mine.
```
In [27]: %timeit list(cols_a(X))
1000 loops, best of 3: 442 µs per loop

In [28]: %timeit list(cols_b(X))
1000 loops, best of 3: 346 µs per loop
```

Hope I'm not missing something.