fix(diagrams): use structuredClone for history snapshots to preserve complex shape properties
Replace JSON.stringify/JSON.parse serialization with structuredClone in the
diagram history (undo/redo) system. JSON round-tripping silently drops undefined
values, cannot natively serialize Maps, and loses special numeric values.
structuredClone handles Maps natively, preserves all property values including
undefined, and correctly deep-clones nested objects like style records and
freehand point arrays.
Add 10 new tests covering: gradient/filter style strings through undo/redo
cycles, line shapes with many points, all 13 shape kinds with full properties,
mutation isolation for points and styles, complex mixed boards, Map instance
verification, deep mutation independence, empty collections, and branch-on-push
semantics.
Closes #546