Treat the artifacts produced for a local file dependency and those produced for other kinds of dependencies more similarly, when visiting the result. Specifically, merge `ArtifactVisitor.visitFile()` into `ArtifactVisitor.visitArtifact()`, so that now all files/artifacts that participate in the resolution result are represented as a `ResolvableArtifact`.