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.
Merge pull request #27 from nsf/master

Enable -Wall -Wextra -Wno-unused-parameter on gcc and clang. Fixes #23.
Merge pull request #28 from nsf/caret_fix

Fix utf8 backward movement bug. Fixes #22.