Initial setup of the API and API compile configurations This is the initial step to provide API/impl separation for the current model. The commit introduces two new configurations:
- `api` is a bucket of dependencies configuration where the user would declare the dependencies of its API. That configuration is not transitive, and reflects the dependencies which are strictly required when some component needs to compile against this component. - `apiCompile` is a consumer only configuration which extends the `api` configuration and provides the compile classpath when a component compiles against this component. It will therefore contain the dependencies of `api`, plus the API classes. The form in which we provide the API classes has yet to be defined (could be a jar, a class directory, stubs, ...).