SIGN IN SIGN UP

Instrument top-down with tracing events

These changes update the top-down implementation to emit tracing events at
certain times. Specifically:

1. Emit eval/fail/redo events for expression evaluation. When an expression
fails to evaluate to true, emit a fail event. When an expression may be
retried with different term bindings, emit a redo event.

2. Emit enter/exit/redo events for rule/query evaluation. When a rule/query
evaluates successfully, emit an exit event. When a rule/query may be retried,
emit a redo event.

The test cases are intended to verify that events are emitted at certain
points as described above.
T
Torin Sandall committed
700d73097edff31038d14c53437f90e24dbb5c32
Parent: 04393df