Ruleset refactoring

A small refactoring of the rule sets. It moves all the explicit checks for the rule types out of `Board`. I also thought about putting this into a trait, but that turned out not to be that nice.