textiter: more generic implementation for "visible" funcs

For gtk_text_iter_forward_visible_word_end(),
backward_visible_word_start() etc, use a more generic implementation
that is based on other public functions.

The purpose is to make gtk_text_iter_forward_word_end() and
gtk_text_iter_backward_word_start() overridable, all the other
word-related GtkTextIter functions should be based on them.

For the cursor_position functions the change is not really needed, but
for code simplification it's better to keep only move_iter_visible().

The unit tests have already a good code coverage for this code, and
there is no regressions.
textiter: more generic implementation for starts/ends/inside word

To use only gtk_text_iter_forward_word_end() and backward_word_start()
which will be overridable.
Add GtkTextBuffer::move_iter vfunc

So that gtk_text_iter_forward_word_end() and backward_word_start() are
overridable.
textiter: set/get boundary type

This way, all the words/sentences-related GtkTextIter functions can be
reused for custom boundaries, and still be able to use the Pango
boundaries for e.g. spell checkers.

With the GtkTextBuffer::move_iter vfunc, all boundary types are
overridable. For example GtkSourceBuffer can override word boundaries
used for cursor movements so it better fits source code.

https://bugzilla.gnome.org/show_bug.cgi?id=562767