Extend fraction free gaussian elimination for any matrix
Refactor `gauss_jordan_elimination` using row operations
Implement `pivoted_gaussian_elimination`

Rename `gauss_jordan_elimination` to `pivoted_gauss_jordan_elimination`
Add tests for `pivoted_gaussian_elimination`
Implement `fraction_free_LU`
Remove whitespaces