Added a language preference

There's a new preference field "locale", which stores the language
to use. The default value "system" means automatic detection of the
system language. The set_language FFL function sets this preference
so its change will persist.

If locale has an "invalid" value, the game will display English as
it can't find an .mo file for that language.