Lifecycle/space fixups

This is the start of addressing a bunch of issues.

* Fixes #165 -- stop resetting mock proxies twice at the end of each example
* Fixes #352 -- make test doubles self-destruct after they are torn down.
* Fixes #240 -- adds `with_temporary_scope`.

Ready for review.