results-add: function to add two results lists

Helps to hide the implementation detail of what a result is (currently a
list of 3 integers).
Minor refactor
run-test-safely: run a test safely

... and also try to guarantee that its teardowns will always be run
whether the test throws an error or not. However, this is not handling
errors in the setups or in the teardowns themselves.

If you want to be sure that any and all errors are being handled, right
now the way to do that is to put all your setup and teardown code inside
each test.

An error is, for the purposes of tallying, treated as a test failure.
assert-*: add and beef up assertion functions

Ggspec now has a respectable suite (pardon the pun) of assertion
functions.
Merge branch 'master' into guile-2
run-tree: fix bug for non-Scheme files in 'spec' dir

The bug was that the path (file) processing function inside the
'file-system-fold' call would return an unspecified value if it came
across a non-Scheme (*.scm) file in the 'spec' directory. The fix is to
return the existing result list unchanged when it does so.

Using the new 'results-add' function helped to expose this bug.