Adding Cholesky solver
Created by: fabienalet
This PR adds the Cholesky (LLt) solver as a possible solver, by choosing lsq_solver="Cholesky" (technically, this does not solve the least square problem but that doesn't matter).
My experience on the Ising1d example with this version, and previous C++ versions, is that the Cholesky decomposition is always the faster exact solver. For intermediate system sizes, it is competitive with iterative solvers (but is no longer efficient for larger systems). There might be specific niche cases (e.g. with a lot of symmetries) where it is actually even faster and/or more stable than the iterative solver.