fixed stack overflow in the rebalance code of ast operators

Operators had a cyclic chain built into them when they
set a new 'proxy' operator to pass validation and print
calls on to.

This is fixed by breaking the chain on the first invocation
of those methods, and then re-building the chain after.