Add removalreason to EntityRemoveFromWorldEvent
Upstream's EntityRemoveEvent was deprecated for coming almost a decade late, but they have the one addition of a reason that we're missing in EntityRemoveFromWorldEvent. Same thing applies to the knockback events I believe
do we just call the paper event in CraftEventFactory#callEntityRemoveEvent instead of ServerLevel.EntityCallbacks#onTrackingEnd with the Cause converting to EntityRemoveFromWorldEvent.RemovalReason (Since EntityRemoveEvent.Cause is deprecated and will be removed in the future we would have to add separate removal reasons) or does it make sense to do it differently?
On a related note, EntityRemoveEvent isn't always called on chunk unload, as the chunk system rewrite does not end up calling Entity#setRemoved in some circumstances, just EntityCallbacks#onTrackingEnd.