Fixes a big logic error of GaussEliminate() and GaussJordanEliminate(): may lose row eliminations.
Scales GaussEliminate() to be able to get Row-Echelon-Form or Reduced-Row-Echelon-Form by pass an argument.