Fix #904: Use trampolining to eliminate CPS recursion in optimizer

This `tailcall` is redundant, since `pretransformBlock` is only called from the top-level of `pretransformExpr`, which means inside a `tailcall` itself.

That said, shouldn't there be a `tailcall` surrounding recursive calls to `pretransformList` herein?