Refactor runner into simple function

This seems to be far cleaner design but I have to recreate the tests for
placeholder replacements. That feels like testing the `strings.Replacer`
and therefore being of questionable value.