textview: word boundaries like in Vim

Ugly implementation, only for Ctrl+Right.
Doesn't take into account invisible regions in the text buffer.

The underscore is not taken as part of a natural-language word, so the
behavior is different than in Vim for e.g. variable names like
a_variable_with_underscores. In Vim it is taken as one word. Here the
word is split at each underscore.