SI-8608 f interpolator emits constant strings

When invoking `format` is obviated by a lack of
formatting fields, then just degenerate to an
unenhanced constant string.

This means it doesn't cost anything to use
f"$$ordinary" in place of "$ordinary", which
may cause warnings under -Xlint.

Note that certain format literals, in particular
for line separator %n, are not actually literals and
can't be replaced at compile time.
SI-8608 f-interpolator inlines StringOps

Instead of "hi".format(), emit new _root_.s.c.i.StringOps("hi").format(),
to clarify intent and avoid picking up some other implicit enhancement.

A further optimization would be to use String.format directly when
that is possible.  The ticket says it is not possible for
```
f"${BigDecimal(3.4)}%e"
```
Merge pull request #3878 from som-snytt/issue/8608

SI-8608 f interpolator emits constant strings