Argument changed. Cache GCs in the per-frame data.
(struct ftxfont_frame_data): New struct.
(ftxfont_draw_bitmap): New arg gc_fore and flush.
(ftxfont_prepare_face, ftxfont_done_face): Delete them.
(ftxfont_draw): Get GCs by ftxfont_get_gcs. Reflect s->clip in
GCs.
(ftxfont_end_for_frame): New function.
(syms_of_ftxfont): Set ftxfont_driver.end_for_frame.
(ftxfont_draw_bitmap): Fix arg to ftfont_driver.get_bitmap.
(ftxfont_draw_backgrond): Fix filling region.
(ftxfont_default_fid): New function.
(ftxfont_open): Set xfotn->fid to the return value of
ftxfont_default_fid.
(ftxfont_prepare_face): Use ftxfont_create_gcs to create GCs.
(ftxfont_done_face): Free only GCs that are created by
ftxfont_create_gcs.
(ftxfont_draw): If face->gc != s->gc, create proper GCs.