trace-schemas: improve schema generation and regenerate outputs
Tighten the GHCi-based schema generator so generated message schemas line
up more closely with the current tracer implementations.
This changes the generator in a few important ways:
- add a `--prune-stale-properties` mode to drop schema properties that are
no longer supported by current inference
- preserve surviving schemas while still allowing inferred fields to be
added or upgraded
- emit `required` fields for inferred non-optional payload keys
- improve namespace parsing for multiline `namespaceFor` clauses and
`namespaceFor = \case` definitions
- improve `forMachine` parsing for multiline headers, nested expressions,
lambda-case bodies, helper-emitted object fragments, and multiple
`".="` fields on one line
- improve constructor matching and normalize qualified constructor names so
`forMachine` and `namespaceFor` resolve to the same event
- scope handshake fallback matching to the Diffusion tracer instead of a
global `AnyMessageAndAgency` fallback
- improve RHS inference for rendered strings, integers, booleans, arrays,
objects, and `toJSONList` payloads
- improve GHCi signature parsing so multiline signatures and tuple results
are handled correctly
Regenerate the message and type schemas with the new generator. This
restores missing payload fields in a number of messages, removes stale
historical fields from others, preserves useful refs in surviving
properties, and generally improves the accuracy of generated trace
schemas.
Also add/update generated trace documentation.