Implement the fixes for resharding for vertical splits.

@enisoc 

See the doc for more info.
I'll make this more obvious by making the []string its own type with methods to figure out the corner cases. Subsequent CL though. :)