fast-mult in log time, iteratively

doesn’t work when the second number is zero
fixed case when b=0
pulled out even? procedure, clean up work