Refactored the root storage cache handling to ensure that the cache is always
the most up-to-date source for object data. Previous remove-add code has been
rewritten to replace objects atomically. Old objects are now destroyed after
being replaced or removed from storage.