Some other minor changes:
* Made ComponentType final + package-private
* Made Entity and ComponentType id protected to allow direct access from
Engine
* Made ComponentType bits protected to allow direct access from Entity
* Made Entity componentBIts protected to allow direct access from
ComponentMapper and EntitySystem
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.