Reuse CI caches across dependency changes and delete superseded ones
A change of the opam files missed every OPAM cache, so CI rebuilt the environments from scratch (9 to 16 minutes on master today, on every push of a pull request that changes them), and left the old ones behind: the repository's caches exceed the 10 GB limit, so live ones get evicted. The environment and build state of the previous dependencies are now restored and updated, and master deletes superseded generations when it saves. The coverage build state no longer changes key with every compiler commit.