sclang and plugins: extended lcm/gcd implementation

So far, in sclang, lcm/gcd were implemented for positive integers, and an extra definition for zero. From a lattice theoretical point of view, all integers can be consistently defined, supporting commutative, associative, idempotent laws, and distributive theorems.
Also here, all laws apply, only the absorption laws like lcm(a, gcd(a, b)) = a do can't be applied at zero.

Nothing changes for positive integers and zero.
Note that in the old implementation, idempotency failed, e.g. lcm(-5, -5) != -5
This implementation extends to the new unit generator operators lcm and gcd.