Use consistent dup(children) method in rewriting

Also use explicit apply methods to construct rewriter combinators (and remove unused rewriter combinators)
Add refold