[WIP] Releasing the GIL in the inner loop of coordinate descent

- [x] release the GIL in the dual gap check (need to replace numpy calls by BLAS equivalents)
- [x] release the GIL in the sparse input variant
- [x] release the GIL for the precomputed Gram matrix variant
- [ ] benchmark the scaling for instance by hacking the cross_val_score function to make it possible to use the threading backend instead of multiprocessing
Thanks for the tip of defining the pointer at the beginning. It seems to work now.

Umm. My idea was that maybe forcing the coefs to be C-contiguous for every interation in enet_path might have caused some overhead. For a C array the incq should be 1 and when it is F-ordered, the incq should be n_features. 

If I make the above operation dependent on the memory location of the first element &Q[0, 0], then we could make it independent of whether Q is C or F ordered since its symmetric.