add generated files
add new FnArg value type
free if/else and ternary ASTnodes
don't free args inside a userFn

Really, we can't free anything inside a userFn right now.
This means more leaks, sadly. The way userFns are handled will
probably have to be completely overhauled to plug them.