Allow boot image for a part of the boot classpath.

Instead of recording a single uint32_t boot image checksum
in the oat header, store a string representing composite
boot class path checksums in the key-value store.

When checking the boot class path while loading the boot
image, allow the boot class path to contain more components.
The runtime shall then load the additional dex files from
these components.

Test: Exclude conscrypt from the the core image modules.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Test: Pixel 2 XL boots.
Test: m test-art-target-gtest
Test: testrunner.py --target --optimizing
Test: run-libcore-tests.sh --mode=host --variant=X64
Test: run-libcore-tests.sh --mode=device --variant=X64
Test: run-jdwp-tests.sh --mode=host --variant=X64
Test: run-jdwp-tests.sh --mode=device --variant=X64
Bug: 119868597
Change-Id: Ia872fdedea0570ace2c8e597ddb3c6f63a43e62a
25 files changed