Drop some commented out code

When rewriting the CallOperator when implementing the "rule()" function,
the test_op() test function was commented out, when it should have been
removed.  This drops the dead code.
Reimplement some operators to short-circuit

The "and", "or", and trinary operators need to short-circuit; that is,
they should only evaluate some of their operands, rather than always
evaluating all of them.  This change uses the new jump instructions to
implement this.  It also creates a distinction between operators
(which implement a fold() method) and instructions.
Move the functional tests for parse_rule()

The tests.unit.test_parser:TestParseRule.test_parse() test method was
really more of a functional test than it was a unit test, so this pulls
it out into tests.functional.test_parser:TestParseRule.test_parse().
Add comprehensive evaluation tests

This adds tests for constant folding and evaluation, under the
functional testing category.  Operator short-circuiting is also
tested.
Bump version and refine requirements.