Introduce a new Variables object storing the variables (instead of a simple dictionary). Also adapt standalone to the new interface, the test suite should now pass for all codegen targets.