algebra: Be a little more careful when testing gcds - code sometimes
does gcd(0*x, 0*x) and expects x.  In this case, 0 is returned.

Also, preserve result of test properly.
aldortest: Tests should fail with an exception, rather than just
printing "error"

This should enable make check to work better.
Force tform on substituted AbSyn objects to be the result of substitution.
This should remove cases of '%' flying around when they aren't wanted.

Main effect of this is to make the interpreter a bit more reliable.