Add additional handlers for properties

- Added transform for transforming values on assignment (i.e. for
canonicalization)
- Added update handler for updating internal state before observers fire