Add blob replication: fetch, verify, store, and serve replicated blobs
After syncing repo blocks, walk records to extract blob CIDs, fetch from
source PDS via com.atproto.sync.getBlob, CID-verify, store in BlockStore
(IPFS), and track in replication_blobs table. Firehose path also triggers
blob fetching for create/update ops. getBlob endpoint extended to serve
replicated blobs from BlockStore.