specl: write a command line interface.

* src/specl.lua: Don't clobber the global namespace with anything.
(M): Record and return APIs.
(Fake specs): Move from here...
* specs/specl_spec.lua: New file. ...to here.
* specl: New file. Load the specl module, and use it to process
each spec file passed on the command line.
* README.md: Update.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
maint: refill copyright notices.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
specl: implement an alternate format, selected by -v option.

* specl (options): Accept -v or -verbose.
* src/specl.lua (run): Add new format parameter.  Assuming what
is passed conforms to the API, that formatter will be called as
the examples are executed.
(formatter): Move from here...
(report): ...to here.
(progress): New formatter that just prints dots as examples pass,
or F as they fail.
(formatter): Default formatter is the new progress formatter.
(M): Put the two formatters in the public interface.
* specl: Request the old report formatter in verbose mode.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
environments: fix the environment sharing TODO.

* src/specl.lua (run_examples): Pass the correct block environment
into the block, so that befores share settings with examples and
afters correctly, and then reset when they go out of scope.
* specl: Remove TODO.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>