Fixed minor bug

CNOT (and all other 2-qubit operators) operate on control and target in
reverse order (first qubit is actually target, and second is control).
Made necessary changes to accomodate that + change such that when we
swap qubits, we don't accidentally swap control when swapping target and
viceversa.
Must recheck logic on that, may not be 100% correct.