Renamed local version of getComponentMetaData as well
REVIEW-4324: Start to model split of local and remote access to module version repositories

- Added ModuleComponentRepository that provide local and remote access via
  ModuleComponentRepositoryAccess. This currently wraps LocalAwareModuleVersionRepository
  but will eventually replace it
- Use ModuleComponentRepository in RepositoryChain resolvers
Pushed ModuleComponentRepository (and *Access) further into repository chain

- Changed CachingModuleVersionRepository to CachingModuleComponentRepository
- Changed LocalModuleVersionRepository to LocalFilesystemModuleComponentRepository
Move resolveModuleArtifacts onto ModuleComponentRepositoryAccess

- This will allow us to get rid of LocalArtifactsModuleVersionRepository, I think
Pushed ModuleComponentRepository further down the stack
Pushed ModuleComponentRepository right to the bottom of the repository stack

- Replaces ModuleVersionRepository, LocalAwareModuleVersionRepository and LocalArtifactsModuleVersionRepository
- ExternalResourceResolver needs some cleanup following this change
Minor refactor to BaseModuleComponentRepository
support extra info in ivy module test fixture
more work on exposing ivy extra info in component metadata rules

- expose ivy info rather than ivy attributes
- add model for ivy-specific module version metadata (IvyModuleVersionMetaData)
- correctly populate ivy-specific metadata when reading metadata from cache
- only invoke metadata rules that accept IvyModuleDescriptor for Ivy modules
- adapt integration tests
Simplified the artifact query calculations within IvyResolver and MavenResolver
Renames and deletions
- LocalFilesystemModuleComponentRepository -> LocalModuleCompoentRepository
- ConfiguredModuleVersionRepository -> ConfiguredModuleComponentRepository
- Removed unused ModuleVersionRepository
Improved description of context, fixing broken integration test
improved javadoc
Changed MulticastConnection so that it joins the multicast group on every network interface that supports multicast, rather than just attempting to use the default interface, which may or may not support multicast and may or may not route anywhere useful. Added some test coverage.
Changed some int tests to use the http repo fixtures.
Moved some usages of ivy DependencyDescriptor into DefaultDependencyMetaData. Also changed DefaultArtifactResolutionQuery so that an id -> metadata resolve failure is also treated as an unresolved component rather than propagated out of execute().
Added missing @Incubating.
Minor tweak to performance test thresholds.
Removed a usage of ModuleRevisionId.
Don't create temporary object that isn't required.