Fix the problem with plugins {} DSL exposing plugins(Closure) to the build script proper by compile time transforming it to be a direct configure of a service lookup.

The previous strategy of using a different script class didn't work because of the behavioural variance of different Script impls (e.g. ProjectScript). This strategy exposes the Script object's service registry (via an obscure name) which gets around the problem of having to add a method to the first pass of scripts. We are however introducing a new symbol into the namespace, but it has an obscure name.