Clean up project buildDirectory set up

- Remove reliance of rootProject.ext when trying to find outDir,
  now each project has this property set
- Remove call to rootProject.subprojects, instead use settings
  gradle.beforeProject to configure build directory
- Remove special casing for buildSrc and playground for picking
  a subdirectory in out, instead use rootProject.name to name
  these directories

Tested in playground with:
playground-projects/collection-playground$ ./gradlew help
> Configure project :playground-plugin
: - /usr/local/google/home/aurimas/Code/androidx-main/frameworks/support/out/playground-plugin/build
> Configure project :playground-plugin:shared
:shared - /usr/local/google/home/aurimas/Code/androidx-main/frameworks/support/out/playground-plugin/shared/build
...
> Configure project :supportBuildSrc
: - /usr/local/google/home/aurimas/Code/androidx-main/out/buildSrc/build
> Configure project :supportBuildSrc:jetpad-integration
:jetpad-integration - /usr/local/google/home/aurimas/Code/androidx-main/out/buildSrc/jetpad-integration/build
...
> Configure project :annotation:annotation
:annotation:annotation - /usr/local/google/home/aurimas/Code/androidx-main/frameworks/support/out/collections-playground/annotation/annotation/build
> Configure project :benchmark:benchmark-darwin
:benchmark:benchmark-darwin - /usr/local/google/home/aurimas/Code/androidx-main/frameworks/support/out/collections-playground/benchmark/benchmark-darwin/build
..

Tested in androidx-main with:
$ ./gradlew help
> Configure project :placeholder
: - /usr/local/google/home/aurimas/Code/androidx-main/out/placeholder/build
> Configure project :buildSrc
: - /usr/local/google/home/aurimas/Code/androidx-main/out/buildSrc/build
> Configure project :buildSrc:imports
:imports - /usr/local/google/home/aurimas/Code/androidx-main/out/buildSrc/imports/build
> Configure project :buildSrc:jetpad-integration
:jetpad-integration - /usr/local/google/home/aurimas/Code/androidx-main/out/buildSrc/jetpad-integration/build
...
> Configure project :annotation:annotation
:annotation:annotation - /usr/local/google/home/aurimas/Code/androidx-main/out/androidx/annotation/annotation/build
> Configure project :appcompat:appcompat
:appcompat:appcompat - /usr/local/google/home/aurimas/Code/androidx-main/out/androidx/appcompat/appcompat/build

Test: Described above
Change-Id: I4f99901c61ce4b3962c4e78f2c02eb8cd0e58eb9
diff --git a/settings.gradle b/settings.gradle
index 25610f7..bdcf375 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -50,28 +50,24 @@
 ).absolutePath
 def rootProjectRepositories
 
-apply from: "buildSrc/out.gradle"
-def (outDir, buildSrcOut) = init.getOutDir()
+apply from: "buildSrc/settingsScripts/out-setup.groovy"
 
-getGradle().beforeProject {
+getGradle().beforeProject { project ->
     // Migrate to dependencyResolutionManagement.repositories when
     // https://github.com/gradle/gradle/issues/17295 is fixed
-    if (it.path == ":") {
-        repos.addMavenRepositories(it.repositories)
-        rootProjectRepositories = it.repositories
-
-        // Set buildSrcOut and outDir extras on root project
-        it.ext.buildSrcOut = buildSrcOut
-        it.ext.outDir = outDir
+    if (project.path == ":") {
+        repos.addMavenRepositories(project.repositories)
+        rootProjectRepositories = project.repositories
     } else {
         // Performance optimization because it is more efficient to reuse
         // repositories from the root project than recreate identical ones
         // on each project
-        it.repositories.addAll(rootProjectRepositories)
+        project.repositories.addAll(rootProjectRepositories)
     }
-    it.ext.prebuiltsRoot = prebuiltsRoot
-    // Expected out directory structure for :foo:bar is out/androidx/foo/bar
-    it.buildDir = new File(outDir, "androidx/${it.path.replace(":", "/")}/build")
+    project.ext.prebuiltsRoot = prebuiltsRoot
+    init.chooseBuildDirectory(
+            new File("${buildscript.sourceFile.parent}/../.."), rootProject.name, project
+    )
 }
 
 apply(plugin: "com.gradle.enterprise")