Don't use string literals as format strings

We found that sometimes a single string would be passed to the UI.Say()
method and format string characters would be incorrectly interpreted
when they really should be treated as character literals.

eg:

ui.Say("hello %s world") // this should actually print "hello %s world"