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.
I think perhaps PersistRange (UpdateRange) and DropRange should be part of Range: Range.Update and Range.Delete.

Also, Range.Delete (or Store.DropRange if you decide to keep it here) needs to clear the response cache. This is a lot of why I'd rather move this code into Range -- you start getting into range-specific details like the response cache.