closed #3106: EventListeners can't be removed sometimes

```cpp
    auto item3 = MenuItemFont::create("Click Me 3", [=](Object* sender){
        auto listener = EventListenerTouchOneByOne::create();
        listener->onTouchBegan = [](Touch* touch, Event* event) -> bool{
            CCASSERT(false, "Should not come here!");  // This callback should not be invoked, since the listener was removed after it was added.
            return true;
        };
        
        _eventDispatcher->addEventListenerWithFixedPriority(listener, -1);
        _eventDispatcher->removeEventListener(listener);
        
        addNextButton();
    });
```