Issue #3608435: Allow tokens in context_display labels, and label-only status lines
Closes #3608435 on drupal.org: https://www.drupal.org/project/orchestra/issues/3608435
Lets a webform step context_display entry carry tokens in its label, and lets an entry omit the variable to render a label-only status line.
- ContextMessages runs each entry label through the core token service (orchestra + orchestra_token contexts, clear unknown, default escaping), so [orchestra:var:NAME], entity chains such as [orchestra:var:validator_uid:user:display-name], and global tokens resolve in a label. The token layer escapes each inserted value; the resolved label goes in as a Markup placeholder (not re-escaped) while a variable value stays a plain-string placeholder that is, so there is no double escaping and no markup injection.
- An entry may omit the variable (a leading "|" in the settings textarea): it renders the tokenized label alone, with no trailing ": value". An entry with neither a variable nor a label is dropped.
- The settings form help text and the textarea parser are updated for the leading-pipe syntax.
The request-validation examples use it: the process step now shows a label-only "Reviewed by [orchestra:var:validator_uid:user:display-name]" line, so the processor sees who approved the request (the name resolved from the completer uid through the existing token chaining, no data capture needed).
Also fixes a context-message leak on the task doorway (present since the context_display feature landed, now more visible with two lines on the process step): the interaction task form re-runs the interaction render on submit, re-posting the step context, which then followed the operator to the inbox. The task form now calls ContextMessages::retract() after completing the step, symmetric with the webform doorway; the service is injected optionally (null when the webform integration is absent), so orchestra_interaction_task keeps no hard dependency on it.
Tests: ContextMessagesTest gains coverage for a token in a label, a label-only line, and that a value inserted through a label token stays escaped; RequestValidationTest asserts the processor step shows "Reviewed by {validator name}" and that neither context notice remains on the inbox after completion, end to end over HTTP.
Verified: the webform kernel test and the examples Functional suite in Docker, phpcs, plus manual validation on a live site.