(WIP) Sparse models: S-LASSO and TV-l1

- Supports TV-l1 and S-LASSO priors
- Supports logistic and squared losses
- Has cross validation
- Can automatically select alpha by CV (+ automatic computation of useful alpha ranges for the CV)
- Warning: User must supply l1_ratio
> > +    gradient = np.zeros(shape, dtype=np.float)  # xxx: img.dtype?

> +1 for img.dtype

No. It needs to be done in the following way:

<pre>
if img.dtype.kind == 'f':
   dtype = img.dtype
elif img.dtype.itemsize == 8:
   dtype = np.float64
else:
   dtype = np.float32
</pre>

this is to avoid at all cost using float64, which consume a lot of memory
and slow computations down.

We should implement a helper function in nilearn._utils.numpy_conversions
that does the above.