Heuristic and Optimal Synthesis of CNOT and Clifford Circuits | Synapse