SI-7544 Interpolation message for %% literal

The new error text: "conversions must follow a splice; use %% for
literal %, %n for newline".

The error is emitted when % is not at the start of a part; only
the non-conversions %% and %n are allowed.

It would be nice if it were convenient to parse the part to see
what the user may have intended, but c'est l'erreur.
SI-7715 Interpolation allows ${_} and ${_: Int}

The placeholders in interpolation args are local to the
interpolation.

Without an explicit type, Any is implied by definition.

```
scala> s"who ${_}"
res0: Any => String = <function1>

scala> s"who ${_ : Int}"
res1: Int => String = <function1>

scala> res1(4)
res2: String = who 4

scala> s"who ${_ : Int}  ${_: Double}"
res3: (Int, Double) => String = <function2>

scala> res3(4,5.0)
res4: String = who 4  5.0

scala> res3(4,5)
res5: String = who 4  5.0

scala> res3(4,"foo")
<console>:9: error: type mismatch;
 found   : String("foo")
 required: Double
              res3(4,"foo")
                     ^

scala> s"${ if (_: Boolean) _ else _ }"
res7: (Boolean, Any, Any) => String = <function3>

scala> res7(true, "foo", "bar")
res8: String = foo

```