When JUnit tests have assumption failures, treat them as "skipped"

JUnit has a conception of "assumptions", when encode conditions in which a test is meaningful.
When an assumption fails, it means that the test provides no useful information, and should
"halt and be ignored".  Prior to this change, Gradle was treating JUnit tests with assumption
failures as "passed".

http://junit.sourceforge.net/javadoc/org/junit/Assume.html
Add unit test coverage for JUnit assumption handling
Add integration test coverage for JUnit assumption handling
Made notify-send notifications transient so that they don't clutter notification panel in Gnome Shell
Fix excluding of docs tests so it also excludes compilation.
Improve excluding of distribution tests.
Support -Dorg.gradle.integtests.versions=«gradle version»[,«other versions]*

Makes it easier to run a compatibility test against a specific version.
State the 1.4-rc-1 has the current artifact cache number, not 1.4.
Removed a TODO. Made sure the scenario is covered in the integ tests.
Always create integ test tasks, instead of using a rule.

This is needed to make the exclusions work correctly (see distributions project).
Added missing unit test coverage.
Module substitution for dependency resolve rules.

- Added useTarget() method for substituting any of the target module properties when dependency resolve rule fires.
- Reused the ModuleVersionSelectorParser, renamed it from 'ForcedModuleParser'. Reworked some code in the notation parsing to improve null handling.
Ack. Forgot to uncomment this.
initialize sonar.debug model
added command-line parameters for SonarAnalyze task

- also updated Javadoc
enhancements to Sonar chapter in user guide
updated release notes wrt. Sonar
javadoc fixes
sonar docs update
got rid of "sonar." in Sonar command line parameters
moved SonarDebugSettings properties to SonarRootModel
added sonar.forceAnalysis property