after RP!.ReducedBasisOfRowModule/ColumnModule we check if the result is equal to the input

in this case we return the input matrix as we might know more about it
(and to save memory)
added caching to GetColumnIndependentUnitPositions/GetRowIndependentUnitPositions

(HomalgExternalCallCounter dropped by one in Purity.g)