Implement transpose and submatrix

* Submatrix returns a the submatrix of a given matrix deliniated by the given
  start and ending row, column positions. These inputs assume that row and column
  numbers start from one, which is different from internal implementation.
Implement fraction free gaussian elimination
Implement diagonal solve
Merge diagonal solve, Rename `gaussian_elimination` to `gauss_jordan_elimination`
Extend fraction free gaussian elimination for any matrix
ginac benchmark: print the time
fix prime_factor_multiplicities to generate only one sieve
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`
Pollard's rho method
Implement `fraction_free_LU`
Remove whitespaces
fix prime_factor_multiplicities
mailmap: fix Thilina's name
mailmap: remove redundant line

This line does not do anything.
Merge pull request #196 from certik/mailmap

Mailmap fixes
Add pivotlist to pivoted versions of gaussian elimination
Remove the LU decomposition implementation
Add references for some of the algorithms