Change the CI scripts to use xvfb-run instead of running Xvfb directly.
That avoids a potential race condition, where a test could fail because Xvfb
hasn't started listening for connections yet. xvfb-run will wait for Xvfb to be
ready before it runs any other programs.
That also simplifies error handling, because the CI scripts can just use
"set -e" instead of having to store the exit code, kill Xvfb, and then check
for an error.