renames the container.Stale field to what it's actually used for, as staleness
is not the only factor used to decide whether a container should be updated anymore
also hides the private field along with linkedToRestarting
- removes unwieldy SkipUpdate return value in favor of errors.Is
- generalizes the code for all four phases
- allows timeout to be defined for all phases
- enables explicit unit in timeout label values (in addition to implicit minutes)