[WIP] Strong rules for coordinate descent

Fixes https://github.com/scikit-learn/scikit-learn/issues/229

This implements strong rules for discarding non active features in coordinate descent. I believe this works. However it is really slow. 

TODO:

- [ ] Decide whether to migrate the strong_active_set and check_kkt_conditions to Cython
- [ ] Fix the lazy centering of sparse matrices that gives slightly different results.
@agramfort @jnothman I'm not really sure this has to be set to be `n_features` or a empty list. The algorithm is described in http://statweb.stanford.edu/~tibs/ftp/strong.pdf . If I set it to an empty list, the number of active_features are much lesser.