REVIEW-664, Copying configurations copies the resolution strategy.

Now the copy of configuration contains a correct copy of the resolution strategy, along with all the state of the strategy (including the cache policy). Mentioned in the release notes about this change.
Merge remote-tracking branch 'origin/master'
fix failing maven:integTest on ci.
GRADLE-2604, Made the maven coordinates used in the test less ordinary to reduce the chance of clashes with locally installed artifacts. Those clashes can lead to test failures that are hard to track.
Merge remote-tracking branch 'origin/master'
Improved the consistency and readability of printing the modules / dependencies.

Instead of: "group: org.gradle, name: someLib, version: 1.0"
It is now: "org.gradle:someLib:1.0"

The change is will have visual impact in quite a few places, mostly at resolution failures. Also, toString() implementations of ceratin core types (ModuleVersionIdentifier, ModuleVersionSelector) are updated accordingly. This way, the reports should be more readable and more consistent (we already use the standard gav notation in many places).
Moved an integ test to a better home.
Added more docs on the dependency resolve actions.

1. Added a better integ test for the user guide samples.
2. Added specific subsection and sample for all 3 use cases: releasable units, custom versioning scheme, blacklisting versions.
3. Added a small sample in the release notes, more content to the notes and linked them with the user guide.
A spec for staring on a user testing kit.
Removed unused method.
Some tweaks to exception handling.
Added a little more validation,
Use a time unit that works on Java 5.
Updated spec to add some use cases for command-line usage.
Fixed race condition in unit test
Fixed the failing test. Made the samples for resolution strategy only run on java5+ as they use API that requires java5.
Fixed the problem with ResolutionStrategy samples in the javadocs. They weren't actually evaluated fully because there weren't any configurations (configurations.all hook not triggered).
first rough fix for the failing ibm jdk build.
TODO: find the root cause of the problem. can't debug this on linux, will try later with windows.
Added rudimentary support for 'configuration-on-demand'.

This change is probing the possible implementation. The final implementation will probably be different (and much prettier). The current idea:

1. Configuration on demand is controlled by a system property (down the road, we'll probably add command line support, support in gradle.properties, etc.)
2. To support name matching execution properly and make the configuration on demand sensitive to the current directory, I've added new BuildConfigurationAction.
3. Added dependencyProject.evaluate() when the project dependency is resolved. This will be changed in the next step because we also want to support task dependencies outside the project.
4. The implicit help tasks are configured for evaluated projects.
Configuration-on-demand supports gradle.projectsEvaluated hook.

It's not quite accurrate, because it is triggered after the task graph is ready. Also, there's more conditional logic in the DefaultGradleLauncher which I'm not sure we want.