[WIP] Sparse label_binarizer

This is a continuation of a part of PR #2458 based on the code already written by @rsivapr and @arjoly from the branch https://github.com/arjoly/scikit-learn/tree/sparse-label_binarizer.

The first steps are to write tests to motivate correctness and then implement the appropriate changes in label.py. Validation of the input has been abstracted to a global private function to avoid duplication when using the two different APIs. 


- [x] label validation on ```LabelBinarizer()``` - with testing
- [x] label validation on ```label_binarizer()``` - with testing
- [ ] ```y``` and classes consistency validation across LabelBinarizers ```fit()``` and ```transform()``` - with testing
- [ ] ```y``` and classes consistency validation on  ```label_binarizer()``` - with testing
- [ ] Issue a deprecation warning with the ```multilabel``` parameter - with  testing
- [ ] Implement ```sparse``` parameter reutrns CSR when true - with testing