fix premature eval bug in Integral.doit()

- Issue example: Integral(1/log(z)), (z, 2, 3)).doit()
- https://github.com/sympy/sympy/issues/2708
- Extend AddWithLimits._eval_factor
- Include calls for .factor() in Integral.doit()
- Properly handle partially-calculated multiple integrals
- Add test_issue_2708() to test_integral.py
- Adjust old tests for syntatical variation under new method