[backfill] stream filtered full repo cars instead of buffering them master
when a filtered backfill falls back to a full getRepo, the whole body used to be collected, every block mapped and every leaf walked before the filter dropped what it didn't want, so one 975 MB atcr hold took hydrant to 2.7 GB. the car is now decoded in chunks as it arrives, on a blocking thread fed through a bounded channel, and only the commit, records whose $type the filter wants and mst nodes that could still reach a wanted range are kept. every other node is remembered as a sha-256 digest so the scan over what was kept can tell a node it ruled out from one that's missing. a leaf that went missing is fetched by cid, or from one whole car with the same root if the pds has no getBlocks. the fetch and the insert share one filter snapshot, so a filter change in between can't delete records the fetch never kept. on real cars the atcr hold peaks at 0.95 GB instead of 2.0 GB, and an 83 MB bsky repo keeps 5 MB of it.