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.
slight variation: I'm calling into the store from Range.{Update,Destroy} (Delete and DeleteRange, well, are taken) as opposed to the other way around.
If I call Stop() and delete the respCache entries, isn't there a slight chance that even though stopped, the Raft goroutine may still do one more command which would have hit the response cache but then doesn't? Don't we technically have to wait until Raft is not operating any more until we take things apart?