Allow script plugins to be applied via the plugins DSL
Remote URLs are also supported:
```
plugins {
script "path/to/other.gradle"
script "
https://example.com/another.gradle"
}
```
Local file paths are expressed as relative from the requesting script.
Constrain plugins {} block api to distinguish binary and script
plugin requests by both strongly modeled types and ad-hoc groovy parsing
of the plugins block. This pave the way for proper support of the
plugins {} block with the Gradle Kotlin DSL.
Implement ScriptPlugin PluginResolver by generating a synthetic
"imperative" Plugin class that loads and applies the script plugin when
applied.
This synthetic generated loader class and the script plugins are loaded
into the buildSrc classloader scope.
Only Project targets are supported.
`apply false` is not supported.