differentiator: main-error_calculator: support prefixing machine output with a variable name.
differentiator: visitor-simplify: rename merge_node() -> simplify_nested_nodes() for clarity.
differentiator: node, node-*, visitor-*: implement concept of "tagged children".

This allows to store additional data for a child (such as addition/subtraction
or multiplication/division flag) alongside the child itself, i. e. in the same
data structure.

This improves code clarity and allows to implement subtree comparison which
is in turn needed to implement advanced node folding.