(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
Why is `gradient_buffer` initialized above, if its pointer is overwritten here? Either update inplace `gradient_buffer[:] = f1_grad(z)` or don't initialize. (modulo my missing something between the initialization line and here)