Split/auto publish

LMS-11017 https://openedx.atlassian.net/browse/LMS-11017
Curious question, probably nothing big: how sparse are we expecting these lists to get?  If we expect the gaps to be very large, it seems awkward to pass around a list with a bunch of `None`s in it when a dictionary would handle most of what you want.