Changelog:
- Defer component updates as iterator invalidation can occur
- Add new struct for this + queue on entity manager
- Add new component: CLifeTimer
- Basically a timer to live for entity
Since an entity is essentially tied to a manager, put it as a field in
Entity. This means no need to pass entity manager when getting a
component, which is more intuitive.