Ensure dex file are extracted and verified at load time

This change removes the ability to specify an explicit OAT location and
ensures that the best oat file (either the oat or the odex) is compiled
according to its special filter (kDefaultCompilerFilterForDexLoading).

The oat files location can therefore be:
- in dalvik-cache: referred as the OAT location.
- in dex_parent_dir/oat/ISA/: referred as the ODEX location.

The "best oat file" for a dex location is changed to prefer the ODEX
location whenever the location is writable (see
OatFileAssistant::GetBestInfo()).

MakeUpTodate will now attempt to generate the "best oat file" instead of
always defaulting to the oat location.

Test: m test-art-host-getest-oat_file_assistant_test
Bug: 36605597
Bug: 36824842
Change-Id: Ic54b3b94be06c8c47f211ce3d738b0db0a9c7bb3
6 files changed