code: function EntityManager(messenger)
  {
    /**
     * Event messenger, injected
     * @type {Messenger}
     * @private
     */
    this.messenger = messenger;
  
    /**
     * Map of tags to the list of their entities.
     * @private
     */
    this._tags = {};
  
    /**
     * @type {Array.<Entity>}
     * @private
     */
    this._entities = [];
  
    /**
     * @type {Array.<Group>}
     * @private
     */
    this._groups = {};
  
    /**
     * Pool entities.
     * @private
     */
    this._entityPool = new ObjectPool(Entity);
  
    /**
     * Map of component names to their respective object pools.
     * @private
     */
    this._componentPools = {};
  }
docs: Manage, create, and destroy entities. Can use methods to mutate entities
  (tags, components) directly or via the facade on the Entity.
  @param {Messenger} messenger
  @constructor