Fix font fallback handling in CoreText backend

Comparing CGFontRefs is not reliable it seems, CFEqual on them appears
to compare pointers and there's no guarantee that CTFontCopyGraphicsFont
returns the same pointer all the time.
So instead let's compare CTFontRefs, which we keep around and also provide
as input to CoreText shaping.

Based on patch from Simon Hausmann