Setup java paths in soong_ui

This way config.mk no longer needs to check which java is in PATH and
fix it. It'll be consistent for all build steps under soong_ui.

Also unify handling of ANDROID_JAVA_HOME / JAVA_HOME with
OVERRIDE_ANDROID_JAVA_HOME / EXPERIMENTAL_USE_OPENJDK9.

Test: m nothing
Test: build/soong/soong_ui.bash --make-mode nothing (w/o envsetup.sh)
Test: aosp_arm ninja files are the same before/after
Test: before/after ninja files match with OVERRIDE_ANDROID_JAVA_HOME
Test: before/after ninja files match with EXPERIMENTAL_USE_OPENJDK9
Change-Id: Icdb65093d9c346524074de239a4f895e4230a24d
diff --git a/ui/build/sandbox_darwin.go b/ui/build/sandbox_darwin.go
index 2cf6e20..56791f7 100644
--- a/ui/build/sandbox_darwin.go
+++ b/ui/build/sandbox_darwin.go
@@ -50,14 +50,8 @@
 
 func (c *Cmd) wrapSandbox() {
 	homeDir, _ := c.Environment.Get("HOME")
-	outDir, err := filepath.Abs(c.config.OutDir())
-	if err != nil {
-		c.ctx.Fatalln("Failed to get absolute path of OUT_DIR:", err)
-	}
-	distDir, err := filepath.Abs(c.config.DistDir())
-	if err != nil {
-		c.ctx.Fatalln("Failed to get absolute path of DIST_DIR:", err)
-	}
+	outDir := absPath(c.ctx, c.config.OutDir())
+	distDir := absPath(c.ctx, c.config.DistDir())
 
 	c.Args[0] = c.Path
 	c.Path = sandboxExecPath