Added an execute event method that takes a consumer of event.
Added DamageEvent and AttackEvent, which is used by Attack systems
Extracted Trample functionality to it's own class. Fixes #100