differentiator: util-tree: split off ancillary definitions from main.
differentiator: add an alternative main for differentiating (as opposed to error calculating).

This way, we also build the tree operations engine into a library.
differentiator: lexer: another hack for allowing underscores in variable names.

It shall certainly be rewritten... two hacks in the same function, limit reached.