support output=AST in tree grammars

Need to be able to do tree rewrites.

Turn off set token boundaries and add create(AST node) which is dup. Return incoming tree if none set.

during AST->AST, what does

e : expr -> expr expr ;

do? Should dup at least one expr, right?