Small changes for integration of Abs

- rewritten as Abs as Heaviside
- rewritten as Heavisides as sign
- integrals with simple heaviside terms
- added ExprCondPair.is_polynomial
The motivation for this addition is in manualintegrate.py 

```
distribute_expand_rule = rewriter(
    lambda integrand, symbol: (
        all(arg.is_Pow or arg.is_polynomial(symbol) for arg in integrand.args)
        or isinstance(integrand, sympy.Pow)
        or isinstance(integrand, sympy.Mul)),
    lambda integrand, symbol: integrand.expand())
```
On occasions when the integrand was a ```Piecewise```, the calls to `is_polynomial` raised errors.  Perhaps there is a better fix?