SI-7271 fixes positions of string interpolation parts

Positions of static parts are now set explicitly during parsing rather
than filled in wholesale during subsequent atPos after parsing.

I also had to change the offsets that scanner uses for initial static
parts of string interpolations so that they no longer point to the
opening double quote, but rather to the actual beginning of the part.
SI-7325 cleans up corner cases of percent handling in StringContext.f

See comments in code for the exhaustive list of the cases handled.
Also note that treatment of non-formatting percents has been changed.
Embedding literal %'s now requires escaping.

Moreover, this commit also features exact error positions for string
interpolation, something that has been impossible until the fix for
SI-7271, also included in this patch.
literal() now assigns a position to the tree it produces

At all its callsites except for a single one, the results of literal()
were wrapped in atPos(in.offset), so the simplification was pretty much
warranted. Thanks @paulp
Merge pull request #2461 from scalamacros/ticket/7325

Some fixes for string interpolation