Consolidate some open issues in the spec
GRADLE-3170 Idea gradle plugin generates wrong sources jar for multi artifact dependencies

Add tests and a fix for issue where Ivy dependencies do not have sources attached correctly.

See http://forums.gradle.org/gradle/topics/idea_gradle_plugin_generates_wrong_sources_jar_for_multi_artifact_dependencies
Extract interface out of AuxiliaryArtifactMatchStrategy
Some cleanup on AbstractSourcesAndJavadocJarsIntegrationTest

- remove reduntant test
- fix some formatting
mention Gregs pullrequest in release notes
Added toString().
Update daemon registry before sending result back to client.

This avoids the case where the client immediately attempts another request upon receiving the result and starting a second daemon because the registry still indicates that the original daemon is busy.
Some int test coverage that tooling api build action classes are reused across operations in the daemon.
Split up TestableDaemon fixture into a piece that understands the log file and another that uses the registry. Use these both of these consistently when asserting that a daemon is idle/busy/stopped.
Some further test coverage that an idle daemon is reused in preference to starting a new daemon.
Tweak test coverage to assert that daemon is idle once the build client has finished, rather than becomes at some point later.
Javadocs.
Added a specific daemon-side factory for tooling api payload ClassLoaders. Doesn't do anything special yet.
Added another potential cancellation point to spec.
GRADLE-2777 Consider the absence of a build artifact in source and target build of buildcomparison as equality
Sort buildcomparison report by name
Show differences first in the buildcomparison report
Compare ZIP archives recursively in the buildcomparison
Sort the uncompared outcomes in the buildcomparison report
Show the uncompared outcomes in the buildcomparison report as non-equal