Fix indentation with multibyte characters

Instead of sometimes using virtcol() to get the screen position,
work with the file as single-byte characters, then adjust the final
indentation by the difference of col and virtcol.

There may be some outstanding edge cases.