Adds the framework for listening to component changes.
Hooks the entity component list changes into the event listeners.
Adds a mock change listener.
Implements a test for the listener feature.
Did some clean-up suggested by the code inspector.
The entity manager invalidates the cache of any query which contains an entity that has a change to its component set.
Changes to the component set of an entity can be observed.