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.
After adding tests to this, I think that `#digest` and `#digest_directory` should be different. Digest directory now takes into account the path of all files in the digest, so that if you move a file then it will register as an update to the digest. This seems semantically different than simply getting a digest of the file itself.