feat(diagrams): add operation-based undo/redo history
Replace snapshot-based undo with an operation log that tracks individual
user actions and their inverses, enabling collaborative undo where each
client only reverses its own operations without overwriting remote changes.
- OperationHistory class with per-client undo/redo, Yjs sync support
- applyOperation dispatcher for all 12 op types (shapes, arrows, groups)
- createOperation helper to compute diffs from before/after state
- 51 tests covering stack behavior, all op types, round-trips, edge cases
- Mark old snapshot History class as deprecated