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.
1. Make sense. I was wondering why we needed a shard lock for applying schema changes. I guess we only needed them for "complex" schema changes where we were actually changing the topo.

2. Done, good catch