Provide our own C interface to rocksdb.

Stop using the rocksdb C interface and instead provide our own C
interface to rocksdb. This makes it cleaner to implement various bits of
cockroach-specific functionality in C++ such as the compaction filter
logic and merge operator.

In viewfinder, our batches made copies of the data because it would often be freed by caller while still in the batch. I think you'll find that happens here as well with Go GCing the original data passed via the DBSlice.