Refactoring in CodeObject: Move the code copying references from Variable objects into the namespace dictionary to a separate method that can be overwritten in subclasses.
The NumpyCodeObject namespace does not need _num_... entries, we can simply use len in the templates
Remove the necessity for the "Variable workaround" for dynamic arrays. For runtime targets, two symbols are inserted into the namespace "array" (underlying array) and "array_object" (the real object). Standalone generates code for each dynamic array.