ocaml-git: Merge.conflict carries diff3 chunks + blob hashes
The conflict record now includes the structured Merge3.merged_chunk
list (for content conflicts) and the three blob hashes (for both
content and structural conflicts). The chunks expose the diff3
result so consumers don't have to re-run the merge to inspect the
unstable regions; the hashes let them re-read the original blobs
from the object database for context.
This is what the upcoming monopam pull --auto resolver needs: per
conflict it gets the path, the reason, the conflicted regions with
surrounding stable context, and access to the original blobs for
verification.
Also tidies pull_no_trailing_newline.t to use grep -a so files
ending without a newline don't get classified as binary by grep.