fix(Angular): make Date comparison in equals() NaN-aware

Make angular.equals() Date comparison NaN-aware to prevent infinite digest errors when a dealy watched
date has an invalid value.

Closes #8650
Closes #8715
refactor(Angular): make NaN check in date equality cleaner