ggspec: implement full functionality of runner

Unfortunately to keep the code from being too complicated, in Guile 1.8
we have to use two mutable pieces of data to hold the current results
while walking the test directory tree.

Currently the script expects a test directory tree named `spec`, but I
might provide an option to customise that in future.

Fix up documentation.
Fix up copyright, license message