Fix parsing of language names with scripts

The code for translating human-readable locale names into POSIX-style
codes used icu::Locale::getName(), which creates ICU internal names.
This was incorrect, it could produce names like zh_Hans_CN, as well as
add additional parameters.

Build the code manually from the provided language, country and script
data. Handle the Chinese case specially. Also recognize the Latn script
and translate it into @latin suffix (e.g. sr@latin).

Fixes #100.
Fix handling of files in folders with " in name

On UNIX systems, quote characters are permitted in filenames, but
weren't escaped properly in Poedit.  This conflicted with Poedit's
quoting of all file arguments (which was done to handle _spaces_ in
filenames).

Add a dedicated function for quoting arguments and let it escape " as \"
on UNIX.  This is still not a proper fix, it would be better to avoid
this whole mess by simply passing argv array to wxExecute in the first
place.  That's a bit too risky for 1.6, though, so it will have to be
fixed on master.