rest of term sign spacing

Here's pretty printing.

One thing it does not do is strip the sign from the first term.

You'll also see that the implementation is intentionally dumb. It just manipulates the output string. This was fast and small. If other requirements need it to know more about the sign of the term I'll fix it. But I don't think event the fraction task needs to.