LMS-11357 Split revert_to_publish: correctly revert to Published version

https://openedx.atlassian.net/browse/LMS-11357

@dmitchell Please review

@cpennington FYI - `version_structure` now raises an Exception if the branch is not specified.  Otherwise, we inadvertently create a new structure for the None branch.
If you're pulling this out to top-level, mark it with `_` so that it doesn't look like a public method.