[MRG] Add decision_function for OneVsOneClassifier.

Adding `decision_function` support for the `OneVsOneClassifier`.

This is based off of #1548 and addresses #1523.

- [x] Implement the `decision_function` for `OneVsOneClassifier` 

decision_function returns `votes + scores * (0.4 / max(|scores.max(axis=None)|, |scores.min(axis=None)|))`

As a corner case, when both max and min are same, it simply returns `votes`.

- [x] Add tests for ovo decision function
* Tests `decision_function(X).argmax(axis=1) == predict(X)`
* Tests `decision_function(X).shape == (n_samples, n_classes)`
* Tests `np.round(decision_function(X)) == separately_computed_votes`
* Tests `computed_scores = (decision_function(X) - np.round(decision_function(X)) ) * upscale_factor_derived_from_computed_scores `

- [x] Incorporate the `decision_function` output in `test_ovo_ties`
`ovo_ties` test requires `votes` to assert tie and `scores` to assert if the prediction breaks ties using aggregated decision scores. Both `votes` and `scores` ( individual ) were separately computed till now. These are modified to use `decision_function`
* `votes = round(decision_values)`
* `scaled_aggregated_scores = decision_values - votes`

@arjoly, @amueller, @mblondel  Pl. review when you find time!
no prob :)
The `votes` do partition the classes but with a little ambiguity (say for some sample we have votes_for_class_i == votes_for_class_j). So for those samples alone, we use the scores to break the tie situation. This has been already employed in `predict` method. This was implemented by separately calculating the votes. getting the `argmax` of `votes` and then for tie situation referring to the `scores`. ( Hence a direct implementation of `decision_function` which returns either `votes` or `scores` will not satisfy `argmax(decision_scores) == predictions`

Now that we need a `decision_function` to return a `score_matrix` with `n_samples` x `n_classes` with the above condition met, I thought maybe we could compress the `scores` and `votes` together to give this decision matrix which will behave consistently for situations under ties or otherwise.

So by scaling and adding the scores to votes... argmax will actually be equal to argmax of votes ( under non-tie situation ) and for ties the scores (the scaled decimal values) alone will differ hence disambiguating it... ( at the same time the [-0.4, 0.4] range of scaling will keep the scores from not messing with the value of the votes...