Isotonic speedups

This PR aims at speeding up the isotonic regression on large datasets.

I've gain a 2.5 speed up on the following test case::

    import numpy as np
    from sklearn.isotonic import isotonic_regression

    seed = 0
    random_state = np.random.RandomState(seed=seed)

    n = 100000
    y = np.arange(n) + 50 * random_state.randn(n)
    y_fit = isotonic_regression(y)

If @agramfort and @fabianp could have a look at this PR, that would be great.