Update ActiveRecord 'dirty' logic
Update ActiveRecord 'dirty' logic

- Only store original value once
- Unset original value on reverted fields
- Remove record dirtyness if the only modified field is
reverted back to its original value
- When updating relationships, only set record dirty when
modifying `one-many` & `context-children` relationships.
Other relationship types will modify the record
and internally call `_setFieldValue()` which will
determine whether or not the record is actually dirty

JarvusInnovations/Emergence-Skeleton,JarvusInnovations/Emergence-Skeleton,JarvusInnovations/Emergence-Skeleton,JarvusInnovations/Emergence-Skeleton