Support X core font driver on cairo (Bug#28236)

* configure.ac (HAVE_X_WINDOWS): Add xfont.o to FONT_OBJ if HAVE_CAIRO.

* doc/lispref/frames.texi (Font and Color Parameters): Mention X core font
driver with Cairo drawing.

* src/font.c (syms_of_font) [HAVE_X_WINDOWS && USE_CAIRO]: Call syms_of_xfont.

* src/xfns.c (x_create_tip_frame) [USE_CAIRO]: Register xfont_driver.

* src/xterm.c (x_cr_gc_clip) [USE_CAIRO]: New function extracted from
x_begin_cr_clip.
(x_begin_cr_clip) [USE_CAIRO]: Use it.
(xlib_surface_key, saved_drawable_key) [USE_CAIRO]: New variables.
(x_cr_destroy_xlib_surface, x_try_cr_xlib_drawable)
(x_end_cr_xlib_drawable) [USE_CAIRO]: New functions.
(x_draw_composite_glyph_string_foreground)
(x_draw_glyph_string_foreground) [USE_CAIRO]: Get Xlib surface when drawing
text with X core fonts into bitmap surfaces.  Add fallback code for drawing
into outline surfaces.
1 job for master in 9 seconds (queued for 3 seconds)
Status Job ID Name Coverage
  Test
failed #2042
test-all

00:00:09

 
Name Stage Failure
failed
test-all Test There has been a runner system failure, please try again
Running with gitlab-runner 11.6.0 (f100a208)
on gitlab-runner-docker cff9d373
Using Docker executor with image debian:stretch ...
Pulling docker image debian:stretch ...
Using docker image sha256:8d31923452f8b79ae91b01568d28c90e7d667a9eaff9734c6faeb017b0efa8d0 for debian:stretch ...
ERROR: Job failed (system failure): Error response from daemon: failed to start shim: exec: "docker-containerd-shim": executable file not found in $PATH: unknown (executor_docker.go:1018:2s)