Fixed an issue in ast-gen where copying an interface would not properly update the "children" vector.
Using new interface mechanisms for the Variable interface which describes variable-like structures such as var, val, func args, etc..