make ModuleMetadataProcessor available to CachingModuleVersionRepository.java

- cleaned up some tests on the go
introduced common abstraction for Ivy and Maven repo/module test fixtures
evaluate component metadata rules in CachingModuleVersionRepository to determine if component is changing