The MovePrimarySourceManager will be analogous to the MigrationSourceManager: it will be the "state machine" for movePrimary.
However, unlike the MigrationSourceManager, it will not need to have a MigrationChunkClonerSource analog, since it will not need any of the MigrationChunkClonerSource's
- opObserver hooks
- set of record loc's to be copied
- set of documents modified by writes that come in during the move
Instead, it will just have a state (for debugging) and a set of functions it will progress through.
It should be a Decoration on DatabaseShardingState for easier debugging from a core dump.