Doc : improved Copy task VS copy() method chapter
GRADLE-2171: Added fail and warn strategies to DuplicatesStrategy.

- WARN will log a warning message for each duplicate file that is encountered.
- FAIL will throw a DuplicateFileCopyingException.
- Updated documentation and unit tests to reflect these new behaviors.
Simple wording changes to files doc
Test coverage for building native binaries with no sources, and with java sources
Change defaults, namingScheme and output directory for binary flavors

- The single default flavor is overwritten by any explicitly added flavours in FlavorContainer
- When resolving, don't attempt to match on flavor if the target has a single flavor
- DefaultNativeBinary is now setup to handle multiple variant dimensions to some extent
    - Currently the only dimension is flavor
- DefaultNativeBinary generates names that include all variant dimensions, and output paths include variant dimensions
    - The exception is a variant dimension where only one possible value exists: these dimensions are collapsed
- Updated cpp/variants sample to use flavours
Extracted a shared superclass for the various long running operation implementations.
Some javadocs.
Implemented BuildActionExecuter.run(ResultHandler) to allow build actions to be run asynchronously

- Change the API of `AsyncConnection` so that it accepts an action to run against a `ConsumerConnection`
- Cranked up the unit test coverage for concurrency.
Removed getVersionDetails() from AsyncConnection and ConsumerConnection.
Added a helper class for implementing thread-safe services.
Improve DefaultAsyncConnection's lifecycle handling.
Extracted `ConnectionAction` out of `AsyncConnection`.
Some test fixes.
Removed an unused class.
Reworked the API for the intermediate stages of the tooling API connection.
Renamed a bunch of consumer classes.
removed unused VersionMatcher methods
removed obsolete import
use our own ExactVersionMatcher instead of Ivy's
Javadoc fix