Introduce a new Batch struct for use with executing range commands.

A Batch is a minimal subset of the Engine interface which satisfies
the needs of MVCC and in general, the execution of Range/Raft commands.
The idea is to make the write-batch nature explicit, obviating the
need to carefully use WriteBatch inside MVCC code. Further, this lays
the groundwork for implementation of an API batch command, allowing
arbitrary combinations of KV API commands to be executed atomically.
This will be important for both large data tasks (e.g. imports), and
for the structured data API (e.g. many updates to associated indexes
on a table insert/update, collapsing a distributed txn which affects
only a single range into one Raft update without associated txn
record).
Remove splitkeycheckinterval
Extended scan test a bit
adjust for travis testrace slowness by increasing IsTrueWithin timeout to 1s instead of 250ms in node_test
Address Tobias' comments. Move the MVCC back to a struct after
realization that this is the right layer to compute statistics
about size of keys and values and counts of versions, etc. We'll
need to write mergable counters for all of these stats over the
course of executing a command.
address ben's feedback
Merge pull request #116 from cockroachdb/spencerkimball/batch-mvcc

Introduce a new Batch struct for use with executing range commands.