Redefines ConcurrentProcess() with std::function to make functor requirement clear.
Adds ConcurrentProcess() helper function.
Add elementary operations' time and space complexity comments.
Adds GaussEliminate().
Extracts default functor to named functions.
Changes GaussJordanEliminate() to use ConcurrentProcess, rather than using std::async directly.
Clean up code.
Renames constant_matrix to extra_matrix.
Adds CheckAugmentable() to check if one matrix can be appended to another matrix.