Kraus operator resolved with serial concatenation
As requested in #3965
Made modifications to kraus in kraus_protocol.py by adding serial concatenation as mentioned.
Also added a test based on the issue.
Have Not implemented the precautions to avoid "large amount of combinatorial explosion" as I'm unclear on what "large amount" should be.
cc #4434
@Zshan0 Can you please fix the failing tests?
I think the PR is ready for review, I need to do refactoring, but I'll need feedback for that. @tanujkhattar
Serial concatenation is done by using the superoperator intermediate. The same can't be done for mixtures so that has remained unchanged.
Since the qubits can not be passed to superoperator while construction, that still has to be done manually using tensor products.
Changed serial concatenation test, the new comparison is done after converting to superoperator as advised.