[WIP] Add decision_function for OneVsOneClassifier.

Adding `decision_function` support for the `OneVsOneClassifier`.

This is based off of #1548 and addresses #1523.

##### Todo:

- [ ] Correctly implement the `decision_function` for `OneVsOneClassifier`
- [ ] Correct the tests
- [ ] Incorporate the `decision_function` output in `test_ovo_ties`

@arjoly, @amueller, @mblondel  Pl. review when you find time!



The question is whether it is worth doing this, and how a deprecation 
cycle would look like.
Probably adding a parameters "ovo_decisions", setting it to none, 
warning, two versions later setting it to false, two versions later 
removing it?
That is pretty annoying from a user perspective because if they don't 
want warnings, they have to change their code twice.


On 11/29/2014 05:44 AM, ragv wrote:
>
> In sklearn/multiclass.py:
>
> > +        decision_function method.
> > +
> > +        Parameters
> > +        ----------
> > +        X : array-like, shape = [n_samples, n_features]
> > +
> > +        Returns
> > +        -------
> > +        D : array-like, shape = [n_samples, n_classes]
> > +        """
> > +        if not hasattr(self.estimators_[0], "decision_function"):
> > +            raise AttributeError(
> > +                "Base estimator doesn't have a decision_function method.")
> > +
> > +        return np.array([est.decision_function(X)
> > +                         for est in self.estimators_]).T
>
> Just a naive question, why do we import |libsvm| rather than have a 
> pure cython version of one?
>
> Also if you decide that the |SVC| be fixed, I'll give it a shot?
>
> —
> Reply to this email directly or view it on GitHub 
> <https://github.com/scikit-learn/scikit-learn/pull/3891/files#r21049892>.
>