perf(ddcd): optimize DirtyCheckingChangeDetector.collectChanges()

Adding a "fake head" allows saving some tests.

I should have some more changes from my cd work but I need to rebase them.