Refactor cache updater to work outside of the users home

This refactors `Cache\Updater` to work on any `View` and removes the assumption of working within the users home folder, additionally `View` is changed to call the updater directly to provide a simpler and more robust code flow to the updater.

Fixes #9496, #8965

cc @PVince81 @DeepDiver1975 
Those are the old test cases for the Updater, they don't test the class directly but only it's behavior indirectly trough the filesystem, couldn't think of a better name