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 don't think so. Would be a very good TODO, simply trying to use a random field with a value as a counter, or an overflow test.
The question is what the desired behaviour is. Clear the key and it's gone, corrupt it properly and RocksDB might refuse to work with it at all until you clear it manually, which may also not be what we want.
The problem with merges is that RocksDB won't really carry them out while we have a chance to talk back to clients.