add XAUTOCLAIM for PEL orphan recovery
Needed by docket's worker to reclaim entries from consumers that died
mid-task — otherwise PEL entries stay claimed forever and a docket
worker restart can't pick up the stuck work.
Mirrors upstream src/store.rs::xautoclaim:
- Walks every consumer's PEL in the named group.
- Filters by min_idle_ms and `start` cursor.
- Sorts by stream ID for deterministic pagination.
- Transfers each qualifying entry to the claiming consumer, even
when the underlying stream entry was trimmed (reports it in
deleted_ids so the caller can XACK and drain the PEL).
- Returns (next_start, claimed entries, deleted_ids); next_start ==
zero means we processed everything in range.
Test covers the basic transfer path (c1 reads, c2 autoclaims with
min_idle=0 → all moved). 41/41 tests pass.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>