First iteration of 'Build logic selects the module that matches an external dependency' story

- Support for accepting/rejecting versions by rule

+review REVIEW @daz