refactor: make specl re-entrant.

* lib/main.lua: Move from here...
* lib/specl/main.lua: ...to here.
* local.mk (dist_noinst_DATA): Adjust.
* lib/specl/main.lua (sandbox): Renamed from this, a shared
sandbox...
(global): ...to this, an initial globals list.
(filters, opts, parser, specs): Move globals...
(Main): ...to states in a new module object.
(compile, execute, process_args, specfilter): Refactored into
object methods from earlier code.
* local.mk ($(srcdir)/bin/specl): Instantiate a new specl.main
object with global command line `arg` table, and `:execute()` it.
* lib/specl/runner.lua (sidefx, filename, filters): Remove
shared module state.  Replace with fields on `Main` object.
(initenv, run, run_contexts, run_examples): Add `state`
parameter to replace shared module local state.
* lib/specl/color.lua (color): Add `want_color` parameter now
that we have no global `opts` table.
* lib/specl/util.lua (princ, writc): Move from here...
* lib/specl/formatter/progress.lua (princ, writc): ...to here.
* lib/specl/formatter/report.lua (princ): ...and here.

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