add InternalSplit command & tests

* added a method CopyInto to the response cache, req'd for initializing a new range during a split.
* added an InternalSplit command. Making the split happen without a transitory period in which things can go wrong is subtle so this needs a good review and likely some changes.
* added some basic tests, but the transition should be bulletproofed using more tests eventually.
We're going to have to put some serious thought into differentiating between errors caused by the normal culprits -- bad inputs from clients, stale information, etc. and errors which might cause the range replicas to diverge -- running out of disk space, underlying rocksdb corruption, etc.

Could you add a TODO to this effect in range.executeCmd? What we'll need is a careful code audit to make sure we identify errors which should be classified as a ReplicaCorruptionError--when those bubble up to the point where we've just tried to execute a Raft command, the Raft replica would need to stall itself.