Ref T5267. Two general changes:
- Make string extraction use a cache, so that it doesn't take several minutes every time you change something. Minor updates now only take a few seconds (like arc liberate and similar).
- Instead of dumping a sort-of-template file out, write out to a cache (src/.cache/i18n_strings.json). I'm planning to add more steps to read this cache and do interesting things with it (emit translatewiki strings, generate or update standalone translation files, etc).