(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
If, as the doctring indicates, we know that we are in 4D, a copy could be saved using `np.sum(np.sqrt(np.einsum("ijkl, ijkl -> jkl", gradient[:-1])))`. But this may or may not be relevant in a benchmark.