Move recursive_delete into the test runner where it belongs, fix a few bugs with coverage.