Resolve symlinks when searching for keys
Resolve symlinks when searching for keys

There are a few different ways to get file metadata in Rust, some of
which traverse symlinks and others that do not. Grabbing metadata
directly from a `DirEntry` is one of the latter. This is what we were
using, meaning that any keys that were symlinks were effectively
invisible to Habitat.

If you instead get metadata from the `DirEntry`'s path, you _do_
resolve symlinks, meaning that `is_file()` will return `true`.

Some of the variable names in the `get_key_revisions` function were
changed to better reflect that we are dealing with `DirEntry` structs,
to make it a bit more obvious what is happening.

Fixes #2939

Signed-off-by: Christopher Maier <b4598f17a90ef80817bae8ad6c37249740caafb4@chef.io>

nathenharvey/habitat,nathenharvey/habitat,habitat-sh/habitat,nathenharvey/habitat,nathenharvey/habitat,georgemarshall/habitat,rsertelon/habitat,georgemarshall/habitat,nathenharvey/habitat,georgemarshall/habitat,habitat-sh/habitat,habitat-sh/habitat,rsertelon/habitat,habitat-sh/habitat,georgemarshall/habitat,nathenharvey/habitat,rsertelon/habitat,rsertelon/habitat,habitat-sh/habitat,habitat-sh/habitat,rsertelon/habitat,rsertelon/habitat,georgemarshall/habitat,georgemarshall/habitat,georgemarshall/habitat,georgemarshall/habitat,habitat-sh/habitat,habitat-sh/habitat,rsertelon/habitat