implement shard merging

Change-Id: I1454f1f31e5d963b46f9f718fa0ea02671a51074
Reviewed-on: https://gerrit.instructure.com/29668
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>