Better i18n take three

I have noted that ordinary translators don't always know all the places that need to be fixed in order to properly add a language, and here's my solution.

Language related constants are moved from the bowels of ui.h into new ui_i18n_decls.h header, where they hopefully will be easier to notice.

Hardcoded language autodetection is replaced with a more generic mechanism based around new macros LANG_POSIX_LOCALE, LANG_WINDOWS_ID and LANG_PRIORITY, usable in ui_i18n.h.

I have annotated all already present languages with them, including those that didn't have autodetection for them before. 

Not having an annotation is fine too, so a translator doesn't have to add mysterious locales and windows ids, if he doesn't want/doesn't know what are these. The only effect of not having an annotation is lack of autodetection for this language (and detection method). 

Wrongly copy-pasting a locale/windows id should not break autodetection for existing language with same locale/id, as long as the copy will be later in text. But I really expect those who pull in new translations to check against that and alter or remove wrong annotations.