Merge timesaved and cache status data structures (#5135)
- Instead of Local/Remote booleans, use a Source field.
This ensure that we are more truthful about where the cache
was restored from, rather than which cache happened to win
the race condition.
- Adds timeSaved value from the same cache source where restoration
happened from.