perf(ddcd): optimize DirtyCheckingChangeDetector.collectChanges()

Port from https://github.com/angular/angular.dart/pull/693

Closes #7