Removed the static methods from GradleLauncher.
Removed a few methods from GradleLauncher, that are now unused.
Changed the contract of GradleLauncherFactory.newInstance() so that the caller is responsible for cleaning up when finished.
Make sure test fixtures clean up GradleLauncher properly.
Changed DefaultServiceRegistry so that it is-a Closeable.
Moved clean up of build scope services from a BuildListener implementation to GradleLauncher.stop(). This means that other listener implementations can use services and domain objects safely.
Removed BuildController.getLauncher(). Can now just get hold of the Gradle instance.
The tooling api actions don't need to use listener contortions to do things with the build any more.
Fixed BuildModelAction so that we don't force all projects to be configured when running tasks.
Introduced BuildCompletionListener and use this in the profile reporting to determine the build end time. This means the profile report will cover tearing down the build services.