(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
Here, what you can do is to define an 'inner_mask', which is a cropped version of the mask. It will be used in the solver, and make the computation of the prox operator much faster.

I would do something like this:
<pre>
idx = np.where(mask)
i_min = max(idx[0].min() -1, 0)
i_max = max(idx[0].max(), mask.shape[0] - 1)
j_min = max(idx[1].min() -1, 0)
j_max = max(idx[1].max(), mask.shape[1] - 1)
k_min = max(idx[2].min() -1, 0)
k_max = max(idx[2].max(), mask.shape[2] - 1)
inner_mask = mask[i_min:i_max, j_min:j_max, k_min:k_max]
</pre>

PS: do this outside the 'if screening_percentile...' test, as is it also valid for user-supplied masks.