Split i18n in separate files per language

This separates different languages into self-contained files,
with strict order-independent ID->STRING correspondence,
automatic fallback to English for untranslated IDs, and
a syntax closely resembling (but not really valid)
gettext's PO files, in case we ever migrate to it.

Also, two new IDs are added for future use:
LANG_NATIVE_NAME for the language name in the language itself,
and LANG_ENGLISH_NAME for the language name in English.
These are expected to be used e.g. in language choice menu.
Eventually.
Stop relying on hardcoded size for i18n tables