Store value protobuf directly for MVCC values

Instead of storing byte strings manually and manually varint encoding
integer values for incrementable keys, we now marshal and unmarshal the
Value protobuf directly. This allows us to Get incrementable keys and
to scan them. It also allows us to correctly discern an error incrementing
a key which is not a varint encoded value.

Implemented value checksums and checksum verification, although only
doing the verification now through kv/rest. Probably want to do the
same elsewhere.
Again, this is done here only because there's no way with the increment for the client to specify checksum of the new increment. With increment, the client doesn't actually know what the current value of the variable is! But now that client can directly fetch incrementable keys via Get() or Scan(), client can still verify checksums this way--all the way from the last increment -> rocksdb -> mvcc.Get -> network -> gateway node -> network -> client.