Fix issue 3744: simplify nseries output with factor_terms()

    The calculate_series should always return a non-zero
    value for nontrivial expression.  Let's do some cheap
    simplifications to check the result is not zero and
    call nseries() with increased n if it is.
Drop workaround for issue 3744 in limit()
Add._eval_as_leading_term(): check for zero output

    _eval_as_leading_term should always return a non-zero value
    from nontrivial expression.  Lets substract the returned
    expression (equal to zero) from the original one an restart
    _eval_as_leading_term() calculation.  See also issue 3744.
Fix failing test in test_integrals.py