handle loose % signs in __() function

While it's passed to sprintf and translation markers may contain
variable placeholders (%s, %d) that doesn't mean translators need to be
aware of all relevant rules. A % sign in a translation message shouldn't
cause a warning (and no return) it should be handled as a literal
percent sign.
Merge pull request #2589 from AD7six/handle-percent-translations

Handle percent symbol in translation functions