[BUG #7063] working version using normal AST (treegenerator and formatter)

- before changing to CST (treegenerator_3 and formatter_3), for better
  pretty-printing of result
[BUG #7063] working version with CST (treegenerator_3 and formatter_3)

- using a string template for the replacement tree, rather than constructing
  this tree by hand (much better!)
- fixing treeutil.findChild along the way
[BUG #7063] generalized patch.py for multiple re-writes

- using a local table of mappings old code -> new code
- the new code is a string template where the arguments from the old calls
  are spliced into
- relies on treegenerator_3.toJS() so improved a couple of those (still some
  missing)
- then the expanded replacement strings are parsed into a tree again, and the
  old call node is replaced
- early stage, still has bugs