environments: make runner environments more robust.

Make sure each nested example block uses the same environment
for before, definition and after calls, and passes the correctly
initialised environment (after befores have run) to nested
contexts.
* specs/environment_spec.yaml: Uncomment previously failing
examples.
* specl/specl.in (clone): New function, copied from stdlib
tree.lua.
(sandbox): Before loading anything, make a deep copy of the
pristine global environment to use as a sandbox for running
examples.
* specl/specl.lua (run): Add an env parameter, and pass that to
run_contexts.
(run_contexts): Remove dead code.
(run_examples): Set up the sandbox for the current example group
from the env parameter, and use it for each example before,
definition and after block.
Fix a bug that passed the wrong environment to recursive
run_context calls.

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