allow null values to trigger hasChanged() assertion

`isset($properties[$property])` returns false when the value is null.
null is a legitimate change for a database field. switching to `array_key_exists()` fixes this.