Shard split cleanup

Improve the code clarity of the shard split methods.  This is some of the oldest code in Jetpants, and it wasn't terribly clean in some parts, nor was it always using Ruby idioms.

Also start to make it easier to resume a shard split that failed part-way. Some manual clean-up may still be necessary, depending on where/how the failure occurred. The main improvement is that after that manual cleanup has been performed, you can re-run "jetpants shard_split" on the parent shard, instead of having to call individual methods in an IRB or "jetpants console" session.