Fix utf8 backward movement bug. Fixes #22.

Utf8 movement functions now only work between [0; i_max]. The fix also
includes a couple of TBCaret fixes, because of these changes.