Don't use internal types in model-core integration test projects

+review REVIEW-5176
Go back to adding model rules for tasks as soon as they are added to the task container

+review REVIEW-5176
Add a comment about inconsistent package versions used by ubuntu build machines.
Cancelled operation throws always o.g.t.BuildCancelledException to toolingApi clients.
Can cancel build during configuration phase.
Move org.gradle.api.sonar.runner -> org.gradle.sonar.runner.

+review REVIEW-5188
It's not XML, it's text.

Why have we lived with this for so long?
Impose 'tasks' and 'plugins' packages conventions.

+review REVIEW-5188
Convert task implementation to Java.

+review REVIEW-5188
Convert plugin class to Java.

Highlighted some design issues that will be fixed in a subsequent change.

+review REVIEW-5188
Move application of sonarRunner {} actions out of the extension, to avoid exposing infrastructure methods to users.

This complicates the design somewhat, but makes things simpler for users by not exposing them to methods they shouldn't call.

To take this further, we could turn the extensions into interfaces.

+review REVIEW-5188
Include org.gradle.sonar.runner.** in the public API.

+review REVIEW-5188
Add package-info files.

+review REVIEW-5188
Removed unecessary java params
Move back source/target compatibility where it should be defined
Refactor logic out of JavaVersion
Revert platform current to be more specific
Remove unecessary null check
Added decendants
Include Java 1.5 test coverage