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
Tidied up useDefaultListeners flag (TestNG).

- undeprecated the flag in code, updated the release notes accordingly
- added documentation for 'useDefaultListeners' and 'listners' properties including code samples
- documented in the docs & release notes how to use old TestNG reporting
Added Test.binResultsDir property, and write binary test results to this directory when tests complete, so that they are available later for reporting on.
Added initial TestReport task, which takes the binary test results from one or more test tasks and generated the HTML test report.
Fixed TestTest to not scribble into $rootDir.
Added className to TestClassResult, so that it does not need to be carried around separately.
- Include test output in report generated by TestReport task.
- Replaced TestResultsProvider.getResults() with visitClasses(). This allows results to be streamed, rather than loaded into a giant map and then converted to another giant map.
- Filter duplicate test classes from the report generated by TestReport task.
Updated UserGuide and maven-publish sample for addition software components
Updated release notes for the 'publish web module to maven' story
Added notation parser for producing MavenArtifact instances from user input.
- Currently handles input as: AbstractArchiveTask, PublishArtifact, File
Test for file-based artifact constructed in task, with encoded classifier.
Made MavenArtifact extension & classifier attributes configurable
- Can use closure to override extension/classifier of attached artifact
Added map-based notation for artifact creation
Added unit test coverage for filename property extraction via ArtifactFile
Unit tests for maven artifact notation parsing and adding artifacts to MavenPublication
Introduced MavenArtifactSet interface to API, and expose as MavenPublication.getArtifacts()
- Can now modify artifacts after the fact, when configured directly or added from a component.
Fix generics compilation issue that wasn't picked up locally