[System.Numerics] BigInteger.GCD(0,x) must return abs(x) instead of x

According to the docs and matching the behavior in .Net, BigInteger's
GreatestCommonDivisor must return the absolute value of the non-zero
parameter if one of the parameters is zero.

Contains a fix and extended unit tests to cover the case.
Merge pull request #662 from cdrnet/fix-biginteger-gcd

[System.Numerics] BigInteger.GCD(0,x) must return abs(x) instead of x