Cache the generated Distribution to avoid doing directory recursion, as discovered by @niner. It also clears the cache when it finds an existing file that was not discovered during the initial generation of the Distribution. It is debatable if clearing the cache is ideal, but it is the current behavior according to a roast test that fails if caching is added without the clearer.