4077: use signsimp as first step in cancel

This addresses some of the issues in #4077, namely, it applies signsimp at the beginning of cancel which (in some cases) is a cheap step to make cancel more effective. e.g. see added test for which the "cancelled" form takes a long time to process whereas the signsimp-lified form returns as nan almost instantly (as described on the issue page).