This release adds the `NoisyCliffordTSimulator` back end option to `QrackProvider`.
This back ends injects a tiny amount of noise into `t` and `tdg` gate application, which happens to make simulation much easier and more efficient. The noisy Clifford+T simulator is useful for practical **high-performance computation** in itself, but wrapping the depolarizing noise channel directly into the `t` and `tdg` gates makes interface easier for **error mitigation** libraries, like [`mitiq`](https://github.com/unitaryfund/mitiq).
Besides depolarizing noise in `t` and `tdg`, another expected small source of noise is Schmidt decomposition rounding, which can be controlled by environment variable `QRACK_QUNIT_SEPARABILITY_THRESHOLD`, but this will otherwise be automatically tuned according to the noise magnitude option for the back end.
This back end employs a "weak simulation condition," which in effect means it cannot use "sampling" optimizations and must simulate every "shot" separately and fully. Neither available Qrack back end exposes state vector or density matrix snapshots, but "weak simulation" in this case precludes also that possibility.