Add Variable class
Handle empty x and y ranges
Use Variable for inputs and outputs
Cleanup
__getattr__ and __setattr__ for direct access to variables
Printing composite systems
Variables use references
Cleaner subsystem name handling
Callable Variables