Be more prescise in the profile analysis

Distinguish between:
 - compile
 - don't compile because we don't have enough delta (standard case)
 - don't compile because all profiles are empty

This will help us be more precise in the compilation strategy and
avoid re-compiling verified dex files when the profile is empty.

Also, this CL fixes dexoptanalyzer tests.
We needed to generate odex files instead of oat files in the
dalvik-cache when testing the functionality. That's because during
tests, the parent directory of the apk is always writable and
OatFileAssistant will believe that it needs to select the odex
files despite having an oat file.

The fix caught issues in the downgrade test, which were also
addressed.

Test: gtest
Bug: 188655918
Change-Id: Id8370541f73465b32dc91aeacf2ba4dc2656c290
(cherry picked from commit 86fef6a8bf321edde046b739df4a732e602bcab5)
6 files changed