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 
Please add a comment. I have no idea what this class is for.