Replace existing gob-based merge impl with proto-based impl.

Merging now takes fully in C/C++ land with no callback to Go. Mildly
less flexible, but the the proto encoding is much more compact than the
gob encoding.
I think you're going to want to clear the checksum on the result. Or...we could recompute it. Do we have a handy crc32 impl. in C++?