gcd.rb extended successive division

extended successive division(ext_gcd(a,b))
disc_log.rb for loop (p times)

general_rho() often fails.
disc_log.rb

tries several times
disc_log.rb primitive_root(), general_rho()

Added check of the fact that {b is a primitive root of (Z/pZ)^*} in general_rho()