we don't "do" rules, we "apply" them...
added Rule factory methods
fixed issue with python3.3 error when BoolOp has only one value
support & tests for empty Rules