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