A utility to substitute expressions in for free variables in a C AST.
This is a mapping operation over C ASTs, which will substitute ordinary free variables according to an identifier-expression omap.