make api respect send_messages_all in a shard aware way

fixes CNVS-16603

test plan
- test as per previous send_messages_all commit, but with shards

Change-Id: I7c38ec4ccc425ed7f15cb629145e223027be0cf5
Reviewed-on: https://gerrit.instructure.com/43677
Reviewed-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Brad Horrocks <bhorrocks@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: Matt Fairbourn <mfairbourn@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>