Swap gate bug fix and QUnit buffer refactor
Due to extended cross entropy benchmark testing, a bug was detected and fixed in QUnit::Swap(). In the process, the QUnit controlled gate buffer code was made cleaner and more versatile. As we select versions to tag by stability and correctness, this is due a release iteration.