* refactor solveValidation
* refactor usolve
* usolve algorithm implemented (for square mat.)
* added lsolve, consistent return type, fixed tests
* fixed lusolve and its tests, fixed linting issues
* added tests for usolve&lsolve, try-catch in lusolve
* put changes into separate files (u-/lsolveAll), revert changes to u-, l- and lusolve
* made *solveAll return [] for non-solvable, implemented sparse algorithms
* improved documentation for *solve(All)
Co-authored-by: Jos de Jong <wjosdejong@gmail.com>