Add incremental sync: serve only changed blocks when since rev is known
When a peer or HTTP client provides a `since` parameter, compute the MST
diff between current and since states, serving only new/changed blocks
instead of the full repo CAR. Falls back to full CAR if the since rev is
unknown or old blocks have been GC'd.