Renames sentry to pivot.
Renames mat to augmented_matrix to make parameter name clearer.
Uses std::function to let user specialize absolute_less(v1, v2) and is_zero(v).