The previous logic was duplicated between symbol-initiated
archive loads versus flag-initiated loads (i.e. -force_load and
-ObjC). This resulted in code duplication as well as redundant work --
we would create Archive instances twice whenever we had one of those
flags; once in getArchiveMembers and again when we constructed the
ArchiveFile.
This was motivated by an upcoming diff where we load archive members
containing ObjC-related symbols before loading those containing
ObjC-related sections, as well as before performing symbol resolution.
Without this refactor, it would be difficult to do that while avoiding
loading the same archive member twice.
clang-tidy: use auto *file pls.