Enhancement/master/matcher static validation

This adds a `#valid?` method to matcher instances to statically validate rules, and to enforce a more strict and less Ruby-esque notion of boolean equality. In addition, it requires that `Razor::Data::Tag` instances either have a `nil` or valid rule.