Move ChangeDetector and Recompiler into their own files