Ensures that if we need to access the same Git repo twice in a resolution, we only have one handler to that repo at a time. (Otherwise, `git2` panics.)
This PR adds a `puffin-cache` crate that we can share across a variety of other crates to generate stable hashes.