Fix cancel() of a Piecewise().

Fixes issue 3923: Calling cancel() on a Piecewise() instance.
http://code.google.com/p/sympy/issues/detail?id=3923
Merge pull request #2244 from jrioux/piecewise

Fix cancel() of a Piecewise().