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.
Look in compaction.cc for my use of a call-through method back to Go to log errors in the C++ to our normal log files. I think we shouldn't just let these silently error.