Configurable quotes

The transformers currently return both single (addDisplayName and quoteAttrName) and double quotes (JSON.stringify) in the transformed result, so it is impossible to enforce quote rules. I've added an option called useSingleQuotes that decides if double or single quotes should be used throughout. I may be missing other cases, but this seems to address the issues I have had.




You can't *just* replace the first and last character since the string value `'"` escapes to `'\"` (the single quote is not escaped). Your algorithm produces (string literal quotes are included):

```
"'\""  =>  ''\"'
"\\"   =>  '\\"
```

Both are invalid JS.

It's possible to add manual escaping etc, but I think that in the end it will not be measurably faster than #1517 and since `"` will remain escaped it in a way actually yields sub-optimal JS. Whereas #1517 is *always* guaranteed to generate correct and optimal output, as single and double quotes are treated equally by JS.