Given a Rule and a descriptor, we want to be able to test the rule on the descriptor and create Issues for any failures.
This could be implemented as a standalone function (usage: issues += alert_issues(rule, descriptor)) or a method on Rule (usage: issues += rule.alert(descriptor)).