[WIP] Strong rules for coordinate descent

Fixes https://github.com/scikit-learn/scikit-learn/issues/229

Just for a note:

1. The grid of alpha should be made such that they are really close to one another. The default setting of `_alpha_grid` does not facilitate this denseness, which makes the algorithm slow down.

2. This is more active when there are a greater number of iterations. Early stopping works non intuitively, since the loss function is not fully optimized, so all the strong features that are active (or violate the KKT conditions) are not optimised for in one pass.

We could maybe see how glmnet deals with checking the tolerance conditions, but I doubt it will that worthwhile.