CompletionWords buffer: work with strings for scanning the words

Instead of working with GtkTextIters. It normally improves the
performances. And the code is well documented, so it should be easier to
understand in the future.
CompletionWords buffer: use a GtkTextRegion

For scanning the words in the buffer.

There is a problem with empty regions in the GtkTextRegion, due to left
and right gravity of the GtkTextMarks (if text is inserted inside the
region, the region is no longer empty).
CompletionWords buffer: some debug messages
CompletionWords buffer: fix word scanning when empty subregions