Add support for rendering complex scripts

Since Pango does not (yet) have a API to use a cairo_font_face_t for
rendering, HarfBuzz is used directly instead to do the actual text
layout, but Pango is still (ab)use to do text itemization.

The thumbnailer still does not do complex text, but I don’t think it
actually need to, so it was left alone.

https://bugzilla.gnome.org/show_bug.cgi?id=346942
Don’t select non-Unicode font charmaps

If the font does not contains all characters checked for, it may end up
with a non-Unicode charmap selected, since the code in
check_font_contain_text() never resets the original charmap. This will
break text layout with HarfBuzz and will give us empty boxes.

I fail to see the logic behind this code, we are only interested in the
Unicode charmap, since the others are pretty useless for us, especially
when there is a Unicode charmap in the font. So just let
FT_Select_Charmap() find the best Unicode charmap in the font for us.