specs: use inprocess examples for almost everything.

* lib/specl/matchers.lua (expectations, ispending): Remove.  We
can't use file local symbols if Specl Main is reentrant.
(init): Require a new state parameter, and set expectations and
ispending attributes on the state.  Adjust all callers.
(status): Require a new state parameter, and construct the
results table from state attributes.  Adjust all callers.
(M.stats): Violates reentrancy.  Move from here...
* lib/specl/main.lua (Main.stats): ...to here.
* lib/specl/matchers.lua (expect, pending): Require a new state
parameter, and access stats values from there.
* lib/specl/runners.lua (run_examples): Set expect and pending in
the execution environment as closures that pass the new state
parameter to matchers implementations.
(accumulator): Adjust callers to accumulate formatter output into
state object, not the formatter module, for reentrancy.
* specs/formatters/spec_helper.lua (run_spec): Use inprocess.call
instead of shell.spawn.
* specs/spec_helper.lua (run_spec): Likewise.
(spawn_specl): Copy of the old shell.spawn using run_spec for
examples that don't yet work with inprocess.
* specs/custom_formatters_spec.yaml: Until we have a way to set
the package.path from an example to affect the environment of
inprocess calls, use spawn_specl for these examples.
* specs/specl_spec.yaml: Likewise for examples that need to
reset the package.path.
* NEWS: Update.

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