Change hanging destroy hook, DamageSource

- HANGING_ENTITY_DESTROY now also passes DamageSource
- DamageSource now has methods for getting both the direct and the
  inderect entities.