ensure that software fetched via path_fetcher are cached correctly

When relying on locally-sourced software (e.g. cookbooks in omnibus-chef-server), the version of the files is tracked via the omnibus repo and is not encoded into the build instructions. When using a version of omnibus with git caching, however, changes to these repos are not tracked because the version number in the software definition does not change. This PR will ensure that the version represented to the cache will track the contents of the directory.
@sdelano can we avoid using OpenSSL here and just use digest instead? There's also already a `digestable` module in omnibus. Perhaps we could just extend that to handle non-files appropriately or at least leverage it here?

The comment does a good job of explaining _what_ the code does, but I would much prefer a comment that explains _why_ the code does that. What issue(s) does this solve versus the pervious implementation? That would be very informative to the future versions of ourselves