refactor object cache deletion
Clean up the way objects are deleted to ensure cache-based leaks and cache-caused zombie objects aren't possible in the future.
Add regression tests to check for basic deletions as well as zombies.
Clean up the way objects are deleted to ensure cache-based leaks and cache-caused zombie objects aren't possible in the future.
Add regression tests to check for basic deletions as well as zombies.