Make OAPH use RaiseAndSetIfChanged

This PR changes `OAPH` to use `RaiseAndSetIfChanged` for change notifications and fixes #697.

We basically needed an `onChanging` action next to the `onChanged` action and I figured we could just as well use a delegate with a ref parameter and call `RaiseAndSetIfChanged`.

If none is provided, a default delegate that assigns the new value to the field is used. 
This contract is now invalid due to the default parameter introduced above...