fix: normalize all SDKs to decode every CAR block
- capture.zig: replace zat.firehose.decodeFrame with minimal CBOR
header peek — removes SDK bias from corpus generation
- bench.zig: decode header → payload → CAR → every block (was only
decoding op-linked blocks)
- bench.py: count blocks from CAR.from_bytes() (libipld already
decodes them internally)
- main.go: track error counts instead of swallowing, count blocks
- main.rs: add block/error counting to existing full-block decode
- all SDKs: report blocks/frame, error count, variance (min/median/max)
- README: honest fairness notes, explain python > rust result
verified: all four SDKs report identical block counts on same corpus.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>