BUG: Change invocation of ImageDataModifiedEvent to a CustomModifiedEvent
When calling StartModify(), ImageDataModifiedEvent was still invoked through InvokeEvent.
This changes the invocation to InvokeCustomModifiedEvent, pausing the event until EndModify() is called.