Changed ProjectDependencies2TaskResolver into a ProjectConfigurationAction.
Introduced ProjectConfigurationActionContainer, a project-scoped container of actions responsible for configuring the project.
Don't configure @DeferredConfigurable extensions at the end of project configuration. Instead, configure them on demand.

Changed PublishingPlugin to use a configuration action to trigger the configuration of the publishing extension.
Defer creation of native binaries until after each component has been configured.

Changed `NativeBinary.lib()` and `CppSourceSet.lib()` so that it lazily resolves the input value.
Moved some stuff up to AbstractToolChain from the subclasses.
Don't need to use ConfigureDelegate to configure reports container.