maint: update slingshot.

* local.mk: Move local changes from Makefile.am to here, to
match latest slingshot usage.
* GNUmakefile, Makeflie.am, build-aux/release.mk,
build-aux/specl.mk, specs/specs.mk: Update form slingshot
upstream.
* connfigure.ac: Merge changes from slingshot.
* m4/ax_with_prog.m4: Remove.
* .travis.yml: Regenerate.
* specs/formatters_spec.yaml, specs/matchers_spec.yaml,
specs/spec_helper.lua, specs/specl_spec.yaml, src/src.mk: Update
local specl path to new bin/specl location.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
specs: copy symbols from `require "foo"` into local env.

* src/specl.lua (initenv.require): Support consistent use of
`require "foo"` to import foo's global symbols into the local
environment, even when foo uses modern `return API_table` style.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
specs: nested expect calls don't need `require "specl"`.

* specs/matchers_spec.yaml (contain matcher, match matcher):
Remove noisy require and `specl.` table qualifiers.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
std: import clone_rename, merge, and Object from lua-stdlib.

* specl/std.lua (clone_rename, merge, Object): Import from
lua-stdlib.
(M): Export them.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
util: type aware Object wrapper, and parameter type checker.

* specl/util.lua (Object): New prototype inheriting from std.Object.
with the addition of a "type" field.
(typeof): Report the type of Object derived objects, or defer to
core type() for built in types.
(type_check): Compare types from a parameter list against valid
type list, raising an error for a type mismatch.
(type_error): Write a parameter type mismatch error in the style
of Lua core function parameter type errors.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
shell: support running and matching state of shell commands.

* specs/shell_spec.yaml: Specify desired behaviour for supporting
executing and matching results from shell commands.
* specs/specs.mk (specl_SPECS): Add shell_spec.yaml.
* specl/shell.lua: New file, implemnting specs above.
(Command): A util.Object type for specifying shell commands, along
with environment variables and input source.
(Process): A util.Object type for recording process status and
outputs.
(spawn): Execute a `Command` and return a `Process`.
* specl/specl.mk (nobase_dist_lua_DATA): Add specl/shell.lua.
* specl/matchers.lua (q): Export `q` to ease creation of additional
matchers in other modules.
* specl/shell.lua (exit, output, match_output, contain_output): New
matchers for querying the state of a `Process` from `spawn`.
* specs/spec_helper.lua (run_spec): Rewrite as a `specl/shell.lua`
client.
* specs/formatters_spec.yaml, specs/matchers_spec.yaml,
specs/specl_spec.yaml: Adjust for changes in `run_spec`.
* src/specl.lua (specl.cmdpipe): Remove undocumented function.
* NEWS: Update.

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