Event.cancel() now halts callbacks and can be used nested
Added tests for EventData.cancel()