Fix clipping issue with double-width characters

fc0abfae113f185cd4ccfebab2a3e0168b5224d3 re-introduced the clipping bug, where characters are drawn outside their cell bounds.

Clipping computation based on `gfx.getFontMetrics(font).charsWidth()` is kind of a no-op, because it is precisely the width the text will want to take. So it won't avoid too large text rendering.

I've fixed and moved the clipping logic in `drawChars()`.