Migrating submissions from old phase to new phase

**This is currently a WIP** but would love some advice!

Does this solution make sense? It triggers a "migration check" on each page load--is there a better opportunity to execute this check? I.E. when a phase is "marked" completed by the organizer, however I couldn't find anything like that in the code. Maybe I overlooked it!

I have tests that are passing, do those tests make sense? They aren't the best tests but should hopefully cover enough cases to 

I have intentionally left the "selecting best submission" desired behavior out, as well as not considered data type bundles vs program type bundles. This kind of behavior may not be applicable to data type bundles. However, in the interest of finishing this before June 10th maybe a little unwanted/ugly behavior trumps not having this phase migration behavior at all.