Font rendering: iterate over Unicode codepoints

This is still not entirely correct for combining characters and more
complex scripts, but it's enough for most left to right text.
Reset cursor when clearing TextEditor
Add text editing cursor to client console