Rename fields in the "Require" class.
Add test cases.
Make "And" and "Or" accept variable number of terms.
Add test case.
Simplify implementation of "And" terms.
Rename base class.