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
temporally stabilize flaky integTest by adding sleep; TODO get rid of the sleep
disabling ObjectiveCLanguageIncrementalBuildIntegrationTest and ObjectiveCppLanguageIncrementalBuildIntegrationTest for clang on linux

- Also added testcase that demos behaviour of clang compiler on linux where it creates different .o files from same inputs