Modified QubitCircuit class to use just a single gate list and fixed the unit tests accordingly

Work in progress.
Here I think that resolve gates should create the new QubitCircuit instance automatically, and return it instead of a gate list, like this:

    qc2 = qc.resolve_gates()