Some breaking changes to Entity management.

- Entity will no longer implicitly cast to Entity::Id. This is safer
  and cleaner.
- Use Entity::destroy(). This will destroy the entity *and* invalidate
  the handle.
- Removed the exists() method, as it was largely meaningless anyway.
  Listen to EntityDestroyedEvent instead.
- Exposed Entity::manager() and removed manager attribute from events.