- Added cache_directory() method to ScopeBase, so a scope can find out where it can write its files.
- Refactored scoperunner and ScopeLoader. ScopeLoader no longer knows about the registry and scoperunner now calls RuntimeImpl::run_scope() to set the scope running, instead of duplicating lots of functionality.
- Removed registry parameter from ScopeBase::start(). The registry is now available via a registry() accessor on ScopeBase. The original start() method is still present, but deprecated. The default implementation of the new start() method forwards to the old one so, if a scope implements only the old one but not the new one, things still work.
- Made methods on ScopeBase virtual, so the testing framework can override them in a test scope. . Fixes: https://bugs.launchpad.net/bugs/1327204, https://bugs.launchpad.net/bugs/1334141, https://bugs.launchpad.net/bugs/1341896.
Approved by Michal Hruby, PS Jenkins bot, Jamie Strandboge.