Printing: print x**-1.0 differently from 1/x

`x**-1.0` and `x**-1` should print differently.  Fixed this and added
tests.  Pretty printing seemed to work already but tests added.
Issue 2860 is related and seems fixed; added tests.
My motivation for this was the `# Note:` comment on ln485.  Same logic applies for `-1.0` versus `-S.One`