CopySchemaShard with a passing integration test

primary: @alainjobart 
FYI: @enisoc 

This adds CopySchemaShard to vtctl, as discussed (using raw ExecuteFetch instead of ApplySchema, and only writing on masters with replication on). I added some unit tests and one full integration test - not planning on doing a mocked test.

I do still need to modify vtworker to depend fully on wrangler for creating schemas instead of copying them itself, and fixing up tests so that all passes.

@alainjobart, I'd especially appreciate a careful look at if locking is appropriate/necessary, and make sure that I'm not stepping on your toes with contexts.
A couple things here:
- we don't need to lock the shard at all. We're just executing statements on the master, we're not changing any topology here. Locking is usually to prevent anybody else from changing the shard, here we don't care.
- you're gonna run 'GetShard' for each sql line, that's a waste, can just do it once, and then loop over the sql statements one at a time.