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

Here is a first pass at releasing the GIL in our the Coordinate Descent solver for elastic net penalized least squares linear regression models. It seems feasible. What's remained to be done:

[ ] release the GIL in the dual gap check (need to replace numpy calls by BLAS equivalents)
[ ] release the GIL in the sparse input variant
[ ] 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

I don't plan to work further on this soon, so if someone wants to take over from here, please feel free to do so.

Maybe @Manoj-Kumar-S you might want to add this to your GSoC proposal if nobody fixes it in the mean time.