Refactor split migrator

LMS-2936

Also, a bunch of ancillary cleanups.
Removed a bunch of loc_mapper code
Cleaned up offering now being course and run in a few places
Removed extra db queries

Replaces https://github.com/edx/edx-platform/pull/4357
This code is only in the test code not in the production code. (tests/utils.py). Split always has an active draft. The new GUI which @andy-armstrong and @cahrens are building gets rid of the "convert to draft" button and treats all units as if they were always in draft and merely let you know whether there are unpublished changes.