[WIP] Random coordinate descent

This is just an attempt to check if shuffling of features helps in random convergence, for now it is just a quick hack, if there is really a decrease in the number of iterations, we can shift to the Cython version to reduce the overhead

ping @ogrisel @agramfort
This is re-allocating an array of size n_features every time. I would initialize f_shuffle with np.arange then use rng.shuffle to shuffle the array in-place.