Fix OatFileAssistant non-determinism in choosing best oat files.

https://r.android.com/3474808 added a file existence check in
GetBestInfo. This introduced a potential inconsistency between two calls
to GetBestInfo because the file existence may change between the two
calls (e.g., a new file is generated by bg-dexopt during that period).
This CL fixes it by only guarding the logging by the file existence
check.

In addition, because `IsUseable` is no longer guarded by the file
existence check, we need to add a file existence check in
ZipArchive::Open, to prevent `OpenArchive` from logging unnecessary
warnings on the absence of DM files.

Bug: 396649891
Bug: 377474232
Bug: 345762752
Test: adb shell pm art dump
Change-Id: I5a7079bed76fb1d89bfaa791bbdd14bb6981d563
2 files changed