specl: implement our own getopt with no dependencies.

Lua stdlib getopt.lua ends up pulling in several more stdlib
modules, which we don't want if specl is to be useful as the
BDD tool for stdlib itself.  And after removing getopt, it turns
out we still had a handful of hidden dependencies on stdlib
ext module behaviours.
* specl/std/getopt.lua: Remove.
* specl/std.lua: Implement our own slurp, warn, process_args and
process_files functions.
* specl/specl.in (prog): Move from here...
* specl/std.lua (prog): ...to here.
* specl/specl.in: Simplify with the help of bespoke std.lua.
* specl/specl.mk (nobase_dist_lua_DATA): Adjust.
* build-aux/speclc.in: Use our mini std.lua.
(reserved): Use a table with true valued keys. instead of a std
set. Adjust all callers.
* specl/matchers.lua (M): Inject public APIs as we go, rather
than relying on stdlib table.merge to assemble the M table.
* specl/spel.lua (M): Likewise.
* specs/specl_spec.yaml (specl): Don't rely on stdlib nil concat
behaviour.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
configury: move gmake-only SPECL_OPTS rules to GNUmakefile.

* specs/specs.mk (SPECL_OPTS, specl_verbose_, specl_verbose_0)
(specl_verbose_1): Move from here...
* GNUmakefile: ..to here.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
specs: make sure Lua specs are compiled correctly.

Using '$^' passes all dependencies as a single non-existent
filename - garbage in, garbage out.
* specs/specs.mk (.yaml.lua): Use '$<', which passes the correct
yaml input for compilation to Lua.

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