renderjs_ui: "Touch" cache manifest in Post-Upgrade
With the current architecture of cache manifest, it was required that developpers change the cache manifests referencing a web page every time they change a web page. In practice, developers were never doing this, so we sometimes had issues where client keep using old version of website even though a new version has been deployed, when after deployment we did not change the cache manifest.
To automate the scenario of modifying the cache manifest, introduce a post-upgrade constraint that will check that the manifest is newer than all of the referenced pages. If that's the case, the constraint can fix by modifying the manifest content, which also changes the modification date of the manifest, which might be used in "if-modified-since" negociations.
According to spec [1], cache manifest is updated if the HTTP responses is not "304 not modified" and if the manifest content is not byte-for-byte identical to the previously cached version.