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.
Maybe just `self.assertEquals(getattr(reverted_parent, field.name), getattr(published_parent, field.name))`?