differentiator: main: use new visitor wrappers, rewrite code to avoid unnecessary tree copies.
differentiator: visitor: rip out Visitor::Util helpers.
differentiator: node, visitor-*: store children in a list.
differentiator: visitor-simplify: use range-based for where appropriate.