Store cache of interested entities in each system.
Perform entity activation, deactivation and removal outside of the update
loop.
Instead of throwing an exception when trying to get a Component from
ComponentBag that is out of range, just return null. This is to allow
systems to try getting a Component it isn't registered for.
Fixed ComponentType.isTypeInMask
Rather than place entities directly on the screen edge boundary, add the
distance they were beyond the screen edge.
Store aabb in ModelComponent for use by multiple systems.