TUI: don't call iconv_open for every single UTF-32 character we write to the screen, and cache results of UTF-32 -> UTF-8 conversion.