Handle percent symbol in translation functions

I don't know if this could open a can of worms but it's annoying that you can do this:

    <?= __('100% Funsies!')

You can't do:

    <?= __('100% %s!', 'Funsies'')

As it generates no output and [only a warning from the vsprintf call](https://gist.github.com/AD7six/18c9353afac1e1464166), and therefore have to do:

    <?= __('100%% %s!', 'Funsies'')

Which most translators would read as a typo, and convert back to `100% %s!' resulting in no output.

So I've added automatic `%` -> `%%` conversion for any detected loose percent sign.