* Due historical reasons Env#warn also existed and in specs we actually
passed an Env object where runtime passes Env::Boostrap objects.
* Fix documentation for runtime type
* Fix specs to pass in the runtime type
* Remove now unused Env#warn
* Before Mutant::Expression was not marshallable resulting in the need
to build "partial" result objects from killforks.
* Fixes an adjacent bug in spec selection
* Do not mix concerns of domain with building an object graph concerning
the domains execution environment
* Removes the amount of clutter in Env (mostly a cleanup for tracing
where Env will grow a bit)
* Nuke around 800 lock
* Honor LSP with not anymore squeezing something non LSP compatible in
the same inheritance tree.
* Separate running from result tree.
* Clean up kill logic and early exits on already dead mutations.
* Fix #runnin? smell for reporters.
* Decouple config object from VM state. Makes it serializable to enable
config loading.
* Fix sequence of global VM events to match PRIOR rspec infects VM with
gazillions of classes / modules. Thix fixes a startup speed
degeneration.
* Various fixes to enhance determinism.
* Replace some unneded manual double dispatch with single manual dispatch for
reporter / runners.
This will allow to use reporters from matchers avoiding stupid direct
writes to $stderr.
Also it will allow to remove matching from CLI altogether in a phase of
the runner. Allowing to decouple Mutant::Config from VM environment
allowing to serialize it ;)
Step by step. Takes a while.