The constructor of OperationFolder takes a listener. Therefore, the remaining API should not take any builder/rewriters. This could lead to double notifications in case a listener is attached to the builder/rewriter.
As an internal cleanup, OperationFolder now has an IRRewriter instead of a RewriterBase::Listener. In most cases, OperationFolder no longer has to notify/deal with listeners. This is done by the rewriter.