Minor `replace` and `%` funcs improvement.

I just noticed that the following code:
```
.test {
    1: replace( "foo", "1", "2");
    2: replace( 'bar', "1", "2");
    3: replace(  baz,  "1", "2");
    4: replace(~"qux", "1", "2");
}
```
compiles to:
```
.test {
  1: "foo";
  2: "bar";
  3: "baz";
  4: "qux";
}
```
So this PR is an attempt to bring some consistency there:
* preserve quote char (`"`, `'` or `none`)
* preserve escaped flag.