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.
Not sure if it's relevant here, but I had issues getting RocksDB to error on a read that had a merge reporting corruption. I'd just get the empty key back, likely because we had set RocksDB to auto-create empty keys (or something). That resulted in code that really didn't have a choice to fail.