Javadocs.
Added CancellationTokenInternal, to allow the public token to be unpacked to the backing internal token
Added the cancellation token to ConsumerOperationParameters so that it is shipped around with all the other parameters.
Changed ToolingImplementationLoader and Distribution to use the internal BuildCancellationToken type instead of the public type.
Removed CancellationToken from ConsumerConnection methods - it's packaged in the parameters instead.
Removed CancellationToken from ModelProducer methods - it's packaged in the parameters instead.
Changed some usages of public CancellationToken to internal BuildCancellationToken.
Removed the callback methods from CancellationToken.
Moved some Gradle version specific knowledge from several tests up to ToolingApiSpecification.
Cache plugin portal responses per Gradle version.

It makes no sense to cache across versions as the protocol is versioned based on the Gradle client.

+review REVIEW-5078
Change the strategy for plugin resolution protocol deprecation to be richer and more robust.

+review REVIEW-5080
Use https to talk to the plugin portal.
Define the base URL as the path to the start of the Gradle API instead of the base of the application.

Without this change, we are forcing all resolution services to have /api/gradle in the path of their endpoint.
Reinstate detecting if the user is trying to apply a non-core plugin already on the classpath via plugins {}
Make PluginResolutionServiceClient implement Closeable, and use this to close caches.

Our instance participates in the service registry which manages closing all Closeables when the registry is closed.
Change case of file to match class name
Some release note edits for plugin portal.
Edit of release notes for incremental java compilation.
Edit of release notes for child process descriptions.
Edit of release notes for maven POM exclusions.