Simplified exclude-rule processing by merging ModuleVersionSpec with ArtifactVersionSpec
Changed ModuleVersionSpec so that isSatisfiedBy() has consistent meaning in all implementations
Renamed ModuleVersionSpec.isSatisfiedBy() -> accept[Module/Artifact]

- Removed ModuleSelector interface as it wasn’t adding value