Check the seat's proposal against an expected record that says what "shape" of proposal is acceptable.

Note that by our current terminology, this function is misnamed because we use "Shape" to refer to patterns, and the expected argument is not such a pattern. Rather it is an ad-hoc pattern-like special case record that is different and much less expressive.

This ExpectedRecord is like a Proposal, but the amounts in 'want' and 'give' should be null; the exit clause should specify a rule with null contents. If the client submits an offer which does not match these expectations, the seat will be exited (and payments refunded).

Use optional proposalShape argument to makeInvitation with a genuine pattern.