(NC-123) Boolean expression rules.

Allow rules to be full-on boolean expressions. Conjunctions and disjunctions
must contain at least one term.
Merge pull request #25 from aperiodic/nc-123-booleans

(NC-123) Boolean expression rules.