Moved closure capturing from VariableAccess and FunctionCall to VariableDecl, removes a lot of duplicate code

...Decl, removing a lot of duplicate code