compute split key for range splitting

Added a method to compute a split key based on the size. To do this, I had to look at raw keys from the engine and decide whether they are an MVCC metadata key or a timestamped value and if so, find the metadata key. To do all of this, I had to expose the methods mvcc{En,De}Code and was forced to do the binary decoding/encoding of keys manually, which leaks MVCC implementation details.
@jiangmingyang Can you suggest an interface to improve on this?
Will not do any more flip flopping now, let's just stick with this and change it when we actually have the rest of the operations we need built. I'm curious to see how the rocksdb size estimation performs for us - iirc it's based on file sizes, so there's compression, old data, ...