Introduce creation of parameterized tooling models
This commit introduces the possibility of passing parameters through the
Tooling API to the model builders in order to create models based on
information received by the client.
This feature allows plugins to register a model builder for a given
model and parameter and then build models based on the received
parameter. It is preferable to passing gradle properties for two
reasons: first convenience and second because parameters can be created
inside the BuildAction.
A new interface ToolingParameterizedModelBuilder was created and should
be extended by parameterized builders. New methods were added to the
BuildController in order to build models with parameters. In order to
keep cross version compatibility, new protocol interfaces were created.