cortexkit-usage-steps 0.1.0

Wire contract, vectors and a last-row-wins helper for the CortexKit live usage step feed (usage.steps.subscribe and usage.steps.read).
Documentation
# Changelog

## 0.1.0 (unreleased)

First version of the live usage step feed contract, v1: `usage.steps.subscribe`
and `usage.steps.read`, the row and its last-row-wins identity, the verdict
rules and thresholds, refusal and ending codes, `LatestRows`, and the
`usage-steps-v1` vectors.

- A row's `output` includes reasoning. `reasoning` is a breakdown of `output`,
  never an addition to it, so `reasoning <= output` whenever both are present.
  This is the rule the runner contract pins for `reasoning_tokens`.
- `StepRow::check_counts` names a row whose `reasoning` exceeds its `output`,
  for the provider's own tests. Readers still decode such a row.
- `live_row_identity` gives the `(harness, step_ref)` identity of a step a
  runner announced, from the step event's members.
- A subscription the caller cancels may end with a last Error `cancelled`
  (`codes::CANCELLED`, `Refusal::cancelled`), which the daemon may drop. A
  reader treats it, after its own Cancel, as the normal end.