Add some more integration tests for dependency resolution, prior to refactoring
Moved responsibility for selecting best match for a dynamic version out of ModuleVersionRepository and into UserResolverChain
- Further refactoring required:
  - Remove more ivy from ExternalResourceResolver
  - Fix for custom ivy resolvers
  - Break UserResolverChain up into parts

Better UserResolverChain
Renamed ModuleResolutionCache -> ModuleVersionsCache
Can now use component metadata rule to update status with latest.*
Fix support for custom ivy dependency resolvers post refactoring
Some extra javadoc