only paint control statements with call info
only paint control statements with call info

When we try to group the operations of an inlined
function by qbit (which happens elsewhere), we need to
make sure that we preserve the info about the original
call so that we can separate control statements properly.
Statements that just wrap an expression, however,
should only be grouped by the qbits that they reference
directly.

for example:

	def foo(a: qbit, b: qbit):

	    if cond1: # needs to be on both a and b
		X(a)  # needs to be only on a

	    if cond2: # needs to be on both a and b
		X(b)  # needs to be only on b

	    Y(a)  # needs to be only on a
	    Y(b)  # needs to be only on b

The barrier for Y(a) needs to be condition on both
a and b so that we don't charge ahead and start doing
Y(a) immediately while X(b) (which might or might not
be executed) is finished.

BBN-Q/pyqgl2,BBN-Q/pyqgl2