gruntz will fail without cancel

gruntz test_3997 will fail if cancel is not used

e.g. if you return tt/d

    assert gruntz(x**-pi, x, 0, dir='-') == oo*sign((-1)**(-pi))
  File "c:\Users\leslie\sympy\sympy\series\gruntz.py", line 649, in gruntz
    r = limitinf(e0, z)
  File "c:\Users\leslie\sympy\sympy\core\cache.py", line 93, in wrapper
    r = func(*args, **kw_args)
  File "c:\Users\leslie\sympy\sympy\series\gruntz.py", line 420, in limitinf
    c0, e0 = mrv_leadterm(e, x)
  File "c:\Users\leslie\sympy\sympy\core\cache.py", line 93, in wrapper
    r = func(*args, **kw_args)
  File "c:\Users\leslie\sympy\sympy\series\gruntz.py", line 505, in mrv_leadterm

    return series.leadterm(w)
  File "c:\Users\leslie\sympy\sympy\core\expr.py", line 2756, in leadterm
    should have been free of x but got %s""" % (self, x, c)))
ValueError:
cannot compute leadterm((-_Dummy_9092)**(-pi), _Dummy_9092). The
coefficient should have been free of x but got (-_Dummy_9092)**(-pi)