Make CoreText shaping engine more robust
Make CoreText shaping engine more robust

This commit makes the CoreText shaping engine much more robust against
the output from the CoreText typesetter. Refer to the source code
comments for exhaustive details.

Furthermore, this patch fixing cursor navigation in strings with
zero-width spaces.

kari-lentz/alpha-pango,kari-lentz/alpha-pango,Distrotech/pango,danny-ku/pango,kari-lentz/alpha-pango,Distrotech/pango,danny-ku/pango,Distrotech/pango,danny-ku/pango,kari-lentz/alpha-pango