Crafting a parser, part 8: testing, snapshots, and fuzzing

Snapshot the tree, round-trip for fidelity, and fuzz to enforce the never-panic contract.