refrain-egraph: equality-saturation normalization for Refrain ASTs.
Uses the egg crate to define a RefrainLang term sort, applies a small
set of Refrain-specific rewrite rules, runs the e-graph to fixpoint
(bounded by a node limit and iteration cap), and extracts the
lowest-cost representative under the AstSize cost model.