[la.numpysolvers] add least_squares as dense solver and refactor apply_inverse
[la.numpysolvers] use spsolve as default dense solver

thermalblock.py works nicely on my 8GB machine with 2e6 DOFs and is
generally much faster than bicgstab-spilu for small to medium-sized
problems. As it is also much less fragile, it seems to be the better default.