Add warnings for Z598, Z599, and Z506 issues
Third of three MRs adding orchestrator warnings (T427112). Stacked on !785 (merged) (T427112-2), which is stacked on !780 (merged) (T427112) — please review those first; the diff here is only the three commits below.
MR1 adds the warnings metadata slot and the accumulation, de-dupe and cap that carry it up the stack. MR2 raises the resource-limit warnings. This MR covers the three remaining sites, each independent of the others and each turning an existing silent drop into a diagnostic the caller can act on.
transform: report the Wikidata values that conversion discards (Z598) — Wikidata data we cannot represent is dropped rather than raised, so one unrecognised unit does not stop a whole lexeme converting. Right behaviour, but it left no trace outside Logstash. The collector reads the existing log entries rather than threading a logger through twenty-odd signatures: a discard tags its entry with discarded and unrecognisedValue, and only entries carrying both become warnings, so an ordinary log line added here stays one. Scoped to the four unrecognised-value sites; the bulk drops (a statement dropped because qualifiers are off, an unhandled rank or snaktype) fire per statement and would flood both Logstash and the warnings list. Also T396943.
orchestrationRoute: report text repaired on the way out (Z599) — a function's output can contain lone UTF-16 surrogates, which strict JSON decoders downstream reject, so serialisation replaces them with U+FFFD. The caller received altered text with nothing to say so. The count is only known once the response is serialised, and recording it changes the response, so this serialises a second time — but only where something actually needed repair, which is rare.
WFFunction: report an argument whose type contradicts its declaration (Z506) — the parameter-type guard records a Z506 in the argument's error slot rather than throwing it, so an argument of the wrong type which the function never reads does not fail the call. The mismatch then vanishes when the argument goes unread. Recording the same Z506 as a warning needs no new warning type; the Z5 is already built and then thrown away. Where the argument is read the caller sees it twice, as the error which failed the call and as the warning recorded when the guard found it, which repeats rather than contradicts.