Review P5-3: shared OLE guest callback frame builder

2026-09-19: the six $ole_guest_callback_invoke1..6 helpers retain their arity-specific signatures but delegate frame construction to one private helper. That helper resolves the guest method before mutating anything, computes the exact stack footprint, writes the return thunk and this, writes only the supplied arguments, and sets ESP/EIP/steps once.

No shared scratch buffer or persistent frame state is introduced. Contexts remain owned by their guest stack frames, and absent interfaces, vtables or methods return zero without modifying the stack or CPU state. The count is private and supplied only by the six constant-arity wrappers.

Verification

Local evidence: /private/tmp/wa-ole-frame-before.log, wa-ole-frame-after.log, wa-ole-frame-negative.log, wa-ole-frame-guest.log, wa-ole-frame-build.log. No new COM feature or performance improvement is claimed.