Make use of the `japicmp` plugin to check for binary compatibilityThis commit introduces the use of the JApiCmp plugin to check for binary compatibility between releases of Gradle.The binary compatibility checks now generate a report per project, based on the last release version. Acceptedchanges need to be added to the `distributions/src/changes/changes-since-x.y.txt` file. - The build will fail if a non accepted, binary breaking change, is introduced. - Removes the binary breaking change test as it is superceded by the plugin use - Uses a single binary compatibility check task for all projects, which aggregates classpathThis commit addresses a concern with regards to refactoring between modules. With individual reports, some errors would occur becausewe moved classes from one module to the other, while, in practice, all are shipped together (as of now). This means that you cannot,in practice, consider all artifacts as separate. They form a whole which is "the Gradle API", for good or for bad.The custom rules: - automatically accept changes based on our `@Incubating` policy - make sure that all rules declared in `changes-since.txt` are matchedThis plugins adds a sanity check, making sure that all the regressions that we declareas accepted in the `changes-since` file actually match a rule. If not, the build willfail, requiring to review this file.Binary compatibility checks is executed as part of `sanityCheck` and `check`.