Changed output format yet again. Everything is now consistent with "term =
value."

Robustified retract_rule.

Incorporated Jason's tweaks to trace.
update tests to reflect new output format.
minor cleanup.
added `mean=` aggregator.

`set=` and `bag=` aggregators return dyna lists. So we can use the results in
other rules.

make sure we show changes when we `retract_rule`

when we show changes we print a header

    > a += 1.

    Changes
    =======
    a = 1.

Also, pycall translates python and dyna lists.

Fixed formatting of lists, strings are double quoted.

Fixed `query [A|_] is [1,2,3]` -- we weren't substituting `A`.
added infix 'in' operator for "iterating" the elements of a list (i.e. `a += x
for X in [1,2,3].` with `X` free and the list bound.) and check if the item
exists in the list.