Build ChangesetSpecs from cache when resolving BatchSpecWorkspaces
Created by: mrnugget
This is part of #26929 (closed) and adds the "read cache" functionality: when resolving workspaces we now check whether we have execution results in the cache for that workspace. If so, we load the results and build changeset specs from the cached results.
We also set the ID of the cache entry on the workspace so that we later can return in the resolver whether we have cached results or not. Instead of a bool I used a foreign-key because... why not?