Fallback to use file(1) to determine file encoding
Do not ignore characters that cannot be transliterated
Fix rendering in non-UTF8 terminals

This reorders the calculation of string lengths and call to iconv() in
draw_chars() so that lengths are always calculated on UTF8 encoded
strings. As a result, lines containing non-UTF8 characters after iconv()
are now properly encoded.