Restore TranslatableSetting.

Complete with a saner implementation.  ~~This requires some hardcore testing, though — it’s better not to pull this just yet (unless, of course, you feel like doing the testing on your own).~~

This fixes #851.

---

### Testing Checklist

The demo site should build and have sensible output with:

- [x] one language
- [x] two languages, with the same values, via string input
- [x] two languages, with the same values, via dict input for the default language
- [x] two languages, with the same values, via dict input for the *other* language
- [x] two languages, with different values, via dict input
- [x] three languages, with the same values, via string input
- [x] three languages, with the same values, via dict input for the default language
- [x] three languages, with the same values, via dict input for *one of the other* languages
- [x] three languages, with different values for two of the languages
- [x] three languages, with different values for two of the languages, none of which is the default
- [x] three languages, with different values for all three languages

### Failures & Tasklist

- [x] develop a new infrastructure for formatting CONTENT_FOOTER
- [x] the new CONTENT_FOOTER formatting infrastructure and langformat() need extensive testing