better error when file is unexpectedly missing

This can happen when the gathering logic is different from "everything I see
in the filesystem", e.g. in [Git::GatherDir] which gathers everything known to
git, and the file isn't actually there.  Without this check, the user sees:

Use of uninitialized value in bitwise and (&) at .../Dist/Zilla/Plugin/GatherDir.pm line 175.

..which doesn't tell the user exactly what went wrong.