LMS-11185 Split implementation of revert_to_published

@dmitchell Please review.
That's the current behavior of Mongo.  It is tested in `test_revert_to_published_direct_only` in test_mixed_modulestore.py with a Sequential.  And it explicitly makes sure that a child Draft is *not* reverted.