Improved algorithm for resolving a dynamic version when a repository contains multiple ivyPatterns
- VersionList now contains the ResourcePattern where a version was loaded from, as well as the version itself.
- ExternalResourceRepository lists all available versions before sorting them and assessing which is the 'latest'
Started to tidy up the way that ExternalResourceResolver uses the cache-manager
- Moved parsing of module descriptor files out of RepositoryArtifactCache and into ExternalResourceResolver
   - Tweaked the implementation so it does just what is required
   - Native dependency resolvers continue to use the CacheManager as-is
REVIEW-2441: Check existence of lib.exe for VisualCpp toolchain availability
REVIEW-2440: Updated test for now auto-imported packages