Managing cached implementations
Scan all the stores and build a set of the available digests. This can be used later to quickly test whether a digest is in the cache.
Recursively set permissions: Directories and executable files become 0o555. Other files become 0o444.
Safe_exception
if there are special files or files with special mode bits set
Create a temporary directory in the directory where we would store a new implementation. This is used to set up a new implementation before being renamed if it turns out OK.