Added copy() to circuit and subcircuit

Also moved relevant parts of flatten to SubCircuit class
Now several TransientNodal objects can share the same circuit instance

Useful for hierarchical simulation. Main change was storing time delays
in TransientNodal object instead of in elements.