Make errors more informative; replace dumb printf-style syntax with not-so-new str.format() hotness

For the second part, it forces Python 2.6 or higher; moreover I didn’t touch some files or strings intentionally.  In case something breaks, I might have done something bad.  I tried not to replace strings that were not in the file.  Also, I didn’t touch `plugins/task_sitemap/sitemap_gen.py` because it is (a) not yours and (b) messy. (I also happily ignored it with the flake8 fixes a bit ago for the same reason)