Don't dirty unchanged records

If any KVO methods get called (e.g., -willChangeValueForKey: and
-didChangeValueForKey:), -isUpdated will return YES even if nothing has
actually changed.

Here, we prune unchanged values from the updates dictionary to ensure
the record will not return YES for -hasChanges unless values change in
the first place.

Signed-off-by: Stephen Celis <stephen@stephencelis.com>