Make the entity death event smart

Yay smart events! Also refactor context.damager handling
Make the entity damage event smart

Yay for smart events! Also more refactoring!