Implement hierarchical circuit DSL over a new flat netlist IR
Add the module-based circuit DSL (circuit.lark/circuit_ast.py/flattener.py), which elaborates and flattens into a new netlist IR (netlist.lark), replacing the old flat .circ format.
Retire sequential_circuit, reversible_circuit, qbf/qcnf, and nl as standalone packages, folding their capabilities into the netlist/circuit basis system and into bf/cnf/dnf's own quantifier support instead of maintaining parallel implementations. Merge qcircuit into netlist the same way, and relocate QCIR-14 support into a new top-level qcir package, so QBF solving goes through netlist -> qcir rather than a separate pipeline.
Convert the legacy unittest suites to pytest with pytest-regressions golden files, modernize type hints to Python 3.12 built-in generics, remove confirmed-dead code, and clear the full pyright error backlog (219 -> 0).