Add a seating messages setting, so a house chooses when a booker is told how their party is sitting
Implements the design in the issue summary.
The house names the rung it starts speaking at, as a floor on SeatingCloseness::getRank(). Everything is the default, so nothing a site says today changes.
SeatingMessages, six answers, andSeatingMessagesResolverbesideAreaChoiceResolver.SeatingCloseness::isWorthSaying()had no callers anywhere; it takes the house's answer rather than a second method being added beside it. The sentence is built only when it says yes.- Both emitters of the row a party left ask the same method. The consolidation path builds its own assignment and computes no closeness, so a condition written only beside the ladder would have leaked there.
- The field is display-configurable with no form display options: the flag is what registers the field rule, so the tenant and the resource type answer through their existing screens, and the control stays off the resource form.
- A refusal is not on this ladder and does not become optional.
Coverage: a unit test over every rung against every answer, and two kernel scenarios beside the ones they silence.