ART: Change GetAndroidRoot() handling

Change ART's very static setup for the root (=system) directory.
This change still prefers the value of the ANDROID_ROOT environment
variable. But as a second step, check the path of the running
libart(d) and try to derive a folder by removing the library and
library path component. Only if that fails attempt the static
"/system."

This requires a change to GetAndroidRoot's return type to std::string.

Add a test of GetAndroidRootSafe to utils_test.

Bug: 65679670
Test: m
Test: m test-art-host-gtest-utils_test
Test: m test-art-host
Test: device boots
Change-Id: Ica99eef8b0ab798f951d63a326f0e599a4a8b469
4 files changed