Typesafe strprintf/error/LogPrint functions

Switch to tinyformat-based formatting.

Tinyformat is a typesafe drop-in replacement for C99 printf functions:
https://github.com/c42f/tinyformat
Remove redundant .c_str()s

After the tinyformat switch sprintf() family functions support passing
actual std::string objects.

Remove unnecessary c_str calls (236 of them) in logging and formatting.
Merge pull request #3549

7d9d134 Remove redundant .c_str()s (Wladimir J. van der Laan)
b77dfdc Typesafe strprintf/error/LogPrint functions (Wladimir J. van der Laan)