Revert "Revert "Wire up application of core plugins in plugins {} block.""

This reverts commit 1d1902e1f89701e7ac53ba49dfb650a0642a3a24.
Handle plugin {} blocks in script plugins for non plugin capable targets.
Wire in some stuff to allow applying core plugins from plugins {} block.

This is a quick spike solution. WIP.
Pull PluginHandler creation up to the script plugin factory.
Introduce a factory for plugin handlers (used by script plugin factories), constructed up at the scoped service registry level.
Spike of supporting implicitly resolving the android plugin.

Nowhere near final implementation.
Unused ivar.
Introduce PluginHandlerInternal, internalising the resolver bits.
Remove unnecessary constant.
Promote inner class.
Promote inner class.
Allow plugins to be versioned.
plugins {} execution only resolves to delegate (i.e. PluginHandler).

This is a break from current behaviour (you can access the Project in buildscript {}).
Fix for trying to use plugins {} on a non pluggable target.
Promote inner class.
Split plugin resolution from dependency resolving.
formatting.
Some TODO notes.
Plugin request might not have a version.
Make repository used for resolving plugins less hardcoded.