Allowed multiple arguments for gcd

Used a variable-length argument list so gcd may now take (nearly) any
number of arguments.  Also throws exception when too few arguments are
passed.