5083: make bases somewhat canonical wrt sign

There are different levels of sign extraction:

1) coefficient sign
2) extractable sign via could_extract_minus_sign
3) "           "    via signsimp

Some sort of sign simplification must be done by Pow or
else other routines cannot do theirs. e.g. if (1-x)**3 is
written as (-(x - 1))**3 by extracting a sign on the interior,
if Pow doesn't do anything then a non-Pow routine has to do the
work. This PR implements handling of the leading coeffient's sign.