AlanTuQC

Results 3 issues of AlanTuQC

Instead of storing the entire Hessian matrix, `diag_fisher=True` calculates Hessian rows _only when they must be used_ (i.e. in the relevant step of coordinate descent). It accomplishes this by storing...

When `use_sparse_hessian=True`, `state.hessian` is stored as a sparse COO matrix. Partially addresses Issue #485 -- the dataset with 4M+ columns can now run without a memory error.

I don't believe COO is the solution that we were hoping for, but here is the code to look over.