MRG: Better enet cv

Less computations and better memory usage in ElasticNetCV

The fact that the coordinate descent cython code has to cast data into float64 combined with parallel computing puts a lot of stress on the memory footprint of this code in our applications.

The code should be ready for merge. All tests pass. @agramfort , please review.