add mvcc support on the top of engine

Summary:
The basic get/put support of mvcc on the top of storage engine

For "get", it will return the latest value who satisfied the given timestamp in the request. TxID in the response will be used to indicate if the response value belong an write intent.
For "put", it will save the value with a version of (key + timestamp) and update the key metadata.

There are few TODOs:
(1) We need to switch to HLTimestamp for timestamp once Spencer updated all requests.
(2) We need to switch to use sqlite4 key ordering once it is ready

Test Plan: go test

Reviewers: spencerkimball

Reviewed By: spencerkimball

Subscribers: mrtracy, Tobias, team

Differential Revision: http://phabricator.cockroachdb.org/D102