Revival of #25. We want e.g. versions `EchelonMat` and `EchelonMatDestructive`. Then the "core routine" `DoEch..` can be destructive.