Clean up ImageSpace::LoadBootImage().

Do not rely on data from Runtime::Current(), pass required
parameters explicitly. Move initialization of runtime
methods to ClassLinker, remove the "uninitialization" from
ImageSpace destructor as it's performed just before the
Runtime is destroyed and it is therefore unnecessary work.

This is not a complete cleanup as we still rely on the
Runtime::Current() for zygote and boot image compilation but
it allows imgdiag to load the system boot image directly.
This shall be implemented in a follow-up change.

Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Bug: 77856493
Change-Id: Ic08c2918d726df8d2af3f8803c1673d8216a3da5
4 files changed