Allow connecting sub-circuits together to form a larger circuits
We should take advantage of the circuit being a class fully by allowing connecting different circuit objects together to form bigger circuits. This will make zero scalable and will make debugging easier. I think we can define a function like:
def combineCircuits(Cir1,Cir2,['cir1n1->cir2n2','cir1n2->cir2n5',.....]):
.
.
.
return combinedCircuit
Here, Cir1 and Cir2 are two different circuit objects and the third argument is the mapping of node connections to be made. The combined circuit will have all nodes of Cir1 and all nodes of Cir2 except for those which have been merged with nodes of Cir1.