revised VersionMatcher interface and implementations

- represent versions as Strings
- bring back compare method
- port all relevant Ivy implementations
- get rid of DefaultVersionMatcherAdapter
port LatestStrategy interface and implementation from Ivy

- replace ArtifactInfo with Versioned interface
added factory method
changed VersionList to have Versioned elements
ExternalResourceResolver improvements

- use our own LatestStrategy and LatestMatcher
- adapt to VersionMatcher now representing versions as Strings
- use ModuleVersionSelector instead of ModuleVersionIdentifier where appropriate
- internal rename refactorings
- remove public methods related to (Ivy) LatestStrategy (also from LegacyDependencyResolver) (breaking DSL change)
updated spec to reflect latest selector behavior for Maven repos
added spec describing use of latest selectors together with custom status
REVIEW-2792: rename ModuleDetails to ComponentMetaDataDetails
changes related to REVIEW-2792

- renamed ComponentMetaDataDetails to ComponentMetadataDetails
- replace ComponentMetadataDetails.getGroup()/getName()/getVersion() with getId()
changes related to REVIEW-2792

- renamed ComponentMetaDataDetails to ComponentMetadataDetails
- replace ComponentMetadataDetails.getGroup()/getName()/getVersion() with getId()
- renamed project.modules to project.componentMetadata
- renamed some members that still had `moduleHandler` in their name
- Javadoc improvements
sorted out file capitalization problem
Merge pull request #175 from sgalles/doc-copy

Documentation : improved Copy task VS copy() method area
Mention Stephan Gallés as a contributor.
Merge pull request #178 from bobbywarner/doc-update

Simple wording changes to files doc
Mention Bobby Warner as a contributor.
Merge pull request #174 from kylewm/DuplicatesWarnFail

GRADLE-2171: Added fail and warn strategies to DuplicatesStrategy.
Mention Kyle's work on duplicate file handling, and add a placeholder to the release notes.
REVIEW-2728 - introduce a specific type for the action that represents a stream of file copy details to process.

This doesn't change the design, just makes things more explicit than using Action to model this function.
REVIEW-2715 - test class rename.
REVIEW-2715 - spockify tests.