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.
You could combine the `if` and `for` as `for child_block_id in block.setdefault('fields', {}).get('children', []):`