runtests script:  fix #87, where a script bug caused false failures

It turns out that simple process substitutions (see bash(1)) caused
the intermittent unit tests in #87.

A process substitution like '>(tee stdout)' forks 'tee' into the
background.  The foreground process does not wait for 'tee' to finish
(not even using 'wait').  After the test finished, the runtests script
compared expected output to the file containing test run output, which
'tee' had not yet finished writing.  The result was a test failure,
with a diff showing truncated output.

This is fixed by creating named pipes for stdout and stderr, reading
them with 'tee', redirecting the script stdout/stderr FDs to the
pipes, running the test, closing the FDs, and using 'wait' to ensure
the 'tee' processes finish writing before exiting.

http://mywiki.wooledge.org/BashFAQ/106

fixes #87
scripts/check-system-configuration.sh:  ignore comments

Reported by seb_kuzminsky

Fix the awk filter to ignore comment lines.

Fixes #90
scripts/check-system-configuration.sh:  output tweak

Reported by seb_kuzminsky

Don't run shmdrv check if no kthreads flavors were built

Fixes #90
tests/module-loading:  Print debug output on failure

Recent intermittent test failures in tests/module-loading/*, but no
debug output.

Print contents of output files to give us a clue.

Fixes #89
Merge pull request #93 from zultron/mk-pull

Fixes for issues #87, #89, #90