stbt-completion: Cleanup: Refactor XDG_CONFIG_HOME default value

...into a single line. The less we mutate existing variables the better.
make check-integrationtests: Don't stop at the first failure

tests/run-tests.sh now runs all shell functions whose name begins with
"test_", instead of specifying each test function explicitly.

I hadn't done this before because I wanted the tests to be run in a
particular order (specifically, to test that GStreamer worked at all
before carrying on with any other tests). But this was causing too
much code duplication in tests/run-tests.sh.

This will also allow me to introduce parallelisation into `make check`
in a future commit.
Run self-tests in parallel

Use GNU parallel to run the various unit tests in parallel. This cuts
`make check` time in half on my dual-core Core i7:

* `make check-integrationtests` went from 80s to 40s.
* `make check-pylint` went from 5s to 3s.

The implementation takes advantage of the fact that `tests/run-tests.sh`
and `extra/pylint.sh` will run a specific test (instead of all tests) if
it is named as a command-line argument.

I can't apply the same parallelisation to `make check-nosetests` because
its output is different if you run it once per file instead of once with
a list of all files (`make check-nosetests` only takes 1.3s to run,
anyway). I didn't apply parallelisation to `make check-bashcompletion`
either, because it takes 0.1s to run.

Note that moreutils also has a tool called "parallel", but it has a
different (and less convenient) command-line API. Fedora wisely don't
provide it in their moreutils package, so that you can install GNU
parallel without conflict.

Note that this implementation falls back to running the tests serially
if you don't have GNU parallel installed.
make check: Don't use PARALLEL environment variable

Commit 42d1d8aa uses PARALLEL if it is set in the environment, copying
the way that INSTALL and TAR are handled. This wasn't a good idea
because `parallel` uses `$PARALLEL` for its default options, so users
are likely to have PARALLEL set to something like "-j8".

Using `:=` instead of `?=` won't take the value from the environment,
but you can still override it with an explicit
`make check parallel=gparallel`.
tests/run-tests.sh: Cleanup: Remove all files in $scratchdir after each test run

I was trying to avoid `rm -rf $scratchdir` out of paranoia, in case
`$scratchdir` expanded to something like "/". But I think with this
I'm being sufficiently careful.
make check: Fix intermittent failures for tests that save screenshot to disk

These tests started failing intermittently since commit 42d1d8aa where
`make check` runs these tests in parallel. Both tests were creating
`screenshot.png` in the same directory, and were occasionally trampling
on each other. Now they use `$scratchdir` which is different for each
test.