removed unused VersionMatcher methods
removed obsolete import
use our own ExactVersionMatcher instead of Ivy's
Javadoc fix
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